Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Acessing functions in packages

Acessing functions in packages

From: Akhilesh <toakkiyadav_at_gmail.com>
Date: 24 May 2006 04:53:12 -0700
Message-ID: <1148471592.808578.100100@i39g2000cwa.googlegroups.com>


Hi,

I'm getting this error while compling the package.:

PLS-00222: No function exsits with name 'FRT_DETAILS' exists in this scope

I'm calling this function from two procedures one is running fine but the other is creating problem.

code:

CREATE OR REPLACE PACKAGE BODY HAWB_MAWB_PRINT_PKG IS

  GV_TOTAL_PREPAID       NUMBER(15, 2);
  GV_TOTAL_COLLECT       NUMBER(15, 2);
  GV_AFC_PREPAID_COLLECT NUMBER(1);
  GV_AFC                 NUMBER(15, 2);

  /*

-------------------------------------------------------------------  */
  FUNCTION FRT_DETAILS(JOB_CARD_PK_IN IN JOB_CARD_AIR_EXP_TBL.JOB_CARD_AIR_EXP_PK%TYPE)     RETURN VARCHAR2 IS     CURSOR JOB_FRT(JOB_CARD_PK_IN IN
JOB_CARD_AIR_EXP_TBL.JOB_CARD_AIR_EXP_PK%TYPE) IS
      SELECT NVL(JOB_FD.FREIGHT_TYPE, 0) FREIGHT_TYPE,
             NVL(JOB_FD.BASIS, 0) BASIS,
             NVL(ROUND(JOB_FD.FREIGHT_AMT * JOB_FD.EXCHANGE_RATE, 2),
0) FRT_AMT,
             NVL(JOB_FD.QUANTITY, 0) QUANTITY,
             FRT.FREIGHT_ELEMENT_ID
        FROM JOB_TRN_AIR_EXP_FD JOB_FD, FREIGHT_ELEMENT_MST_TBL FRT
       WHERE FRT.FREIGHT_ELEMENT_MST_PK = JOB_FD.FREIGHT_ELEMENT_MST_FK
         AND JOB_FD.PRINT_ON_MAWB = 1
         AND JOB_FD.JOB_CARD_AIR_EXP_FK = JOB_CARD_PK_IN
      UNION
      SELECT 1 FREIGHT_TYPE,
             2 BASIS,
             ROUND(OTH_CHG.AMOUNT * OTH_CHG.EXCHANGE_RATE, 2) FRT_AMT,
             1 QUANTITY,
             OTH_FRT.FREIGHT_ELEMENT_ID
        FROM JOB_TRN_AIR_EXP_OTH_CHRG OTH_CHG,
             FREIGHT_ELEMENT_MST_TBL  OTH_FRT
       WHERE OTH_FRT.FREIGHT_ELEMENT_MST_PK =
             OTH_CHG.FREIGHT_ELEMENT_MST_FK
         AND OTH_CHG.PRINT_ON_MAWB = 1
         AND OTH_CHG.JOB_CARD_AIR_EXP_FK = JOB_CARD_PK_IN;

    V_PREPAID     NUMBER(15, 2);
    V_COLLECT     NUMBER(15, 2);

    V_FRT_DETAILS VARCHAR2(1000);
    V_NO_OF_FRT NUMBER(1);   BEGIN
    V_PREPAID     := 0.00;
    V_COLLECT     := 0.00;
    V_FRT_DETAILS := '';
    V_NO_OF_FRT   := 0;

    FOR FRT_DET IN JOB_FRT(JOB_CARD_PK_IN) LOOP       IF UPPER(FRT_DET.FREIGHT_ELEMENT_ID) <> 'AFC' THEN

        IF V_NO_OF_FRT = 4 THEN
          V_NO_OF_FRT   := 0;
          V_FRT_DETAILS := V_FRT_DETAILS || CHR(13);
        END IF;

        IF FRT_DET.FREIGHT_TYPE = 1 THEN
          -- PREPAID
          V_PREPAID := V_PREPAID + FRT_DET.FRT_AMT;
        ELSE
          --COLLECT
          V_COLLECT := V_COLLECT + FRT_DET.FRT_AMT;
        END IF;
        --1-%, 2-FLAT,3-KGS

        V_FRT_DETAILS := V_FRT_DETAILS || FRT_DET.FREIGHT_ELEMENT_ID;
        --V_FRT_DETAILS := V_FRT_DETAILS || '(' || FRT_DET.BASIS || ')

';
V_FRT_DETAILS := V_FRT_DETAILS || ' ' || FRT_DET.FRT_AMT || '

';

      ELSE

        GV_AFC                 := FRT_DET.FRT_AMT;
        GV_AFC_PREPAID_COLLECT := FRT_DET.FREIGHT_TYPE;

      END IF;

      V_NO_OF_FRT := V_NO_OF_FRT + 1;

    END LOOP;     GV_TOTAL_PREPAID := V_PREPAID;
    GV_TOTAL_COLLECT := V_COLLECT;     RETURN V_FRT_DETAILS;
  END;   PROCEDURE MAWB_JOB_CARD_DETAILS(MAWB_PK_IN IN MAWB_EXP_TBL.MAWB_EXP_TBL_PK%TYPE,
                                  CREATED_FROM    IN
MAWB_EXP_TBL.MAWB_MADE_FROM%TYPE,
                                  JOB_CARD_REF_NO OUT VARCHAR2,
                                  SPOT_RATE       OUT VARCHAR2,
                                  FRT_DETAILS     OUT VARCHAR) IS

    V_SPOT_RATE       VARCHAR2(20);
    V_FRT_DTLS        VARCHAR2(1000);
    V_JOB_CARD_REF_NO VARCHAR2(20);
    V_JOB_CARD_PK     JOB_CARD_AIR_EXP_TBL.JOB_CARD_AIR_EXP_PK%TYPE;

  BEGIN     IF CREATED_FROM = 3 THEN

      V_JOB_CARD_REF_NO := 'CONSOLIDATION NOT IMPLEMENTED';
      V_FRT_DTLS        := 'CONSOLIDATION NOT IMPLEMENTED';
      V_SPOT_RATE       := 'CONSOLIDATION NOT IMPLEMENTED';

    ELSE

      SELECT JOB.JOB_CARD_AIR_EXP_PK,
             JOB.JOBCARD_REF_NO,
             HAWB_MAWB_PRINT_PKG.SPOT_RATE(BKG.BOOKING_AIR_PK)
        INTO V_JOB_CARD_PK, V_JOB_CARD_REF_NO, V_SPOT_RATE
        FROM JOB_CARD_AIR_EXP_TBL JOB, BOOKING_AIR_TBL BKG
       WHERE BKG.BOOKING_AIR_PK = JOB.BOOKING_AIR_FK
         AND JOB.MAWB_EXP_TBL_FK = MAWB_PK_IN;

      V_FRT_DTLS := FRT_DETAILS(V_JOB_CARD_PK);

    END IF;

    JOB_CARD_REF_NO := V_JOB_CARD_REF_NO;
    SPOT_RATE       := V_SPOT_RATE;
    FRT_DETAILS     := V_FRT_DTLS;

  END;   /*

-------------------------------------------------------------------  */
  PROCEDURE HAWB_PRINT(HAWB_PK_IN       IN
HAWB_EXP_TBL.HAWB_EXP_TBL_PK%TYPE,
                       LOGGED_IN_LOC_FK IN VARCHAR2,
                       HAWB_CUR         OUT REF_CURSOR) IS

    V_FRT_DETAILS VARCHAR(1000);
    V_JOB_CARD_PK JOB_CARD_AIR_EXP_TBL.JOB_CARD_AIR_EXP_PK%TYPE;
    V_PPD_VAL     VARCHAR2(1);
    V_COLL_VAL    VARCHAR2(1);
    V_PPD_OTH     VARCHAR2(1);

    V_COLL_OTH VARCHAR2(1);
  BEGIN     SELECT JAE.JOB_CARD_AIR_EXP_PK
      INTO V_JOB_CARD_PK
      FROM HAWB_EXP_TBL HAWB, JOB_CARD_AIR_EXP_TBL JAE

     WHERE JAE.HAWB_EXP_TBL_FK(+) = HAWB.HAWB_EXP_TBL_PK
       AND HAWB.HAWB_EXP_TBL_PK = HAWB_PK_IN;

    V_FRT_DETAILS := FRT_DETAILS(V_JOB_CARD_PK);

    PREPAID_COLLECT_MARK(V_JOB_CARD_PK,
                         V_PPD_VAL,
                         V_COLL_VAL,
                         V_PPD_OTH,
                         V_COLL_OTH);

    OPEN HAWB_CUR FOR       SELECT HAWB.HAWB_REF_NO "HAWB_REF"         FROM HAWB_EXP_TBL HAWB,        WHERE HAWB.HAWB_EXP_TBL_PK = HAWB_PK_IN;   END; END HAWB_MAWB_PRINT_PKG; regards
Akhilesh Received on Wed May 24 2006 - 06:53:12 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US