Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Acessing functions in packages
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
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_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;
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);
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