ORA -20003 with no error message

From: Joe Mellors <joemellors_at_aol.com>
Date: 3 May 2002 10:20:16 -0700
Message-ID: <53566469.0205030920.3f213c60_at_posting.google.com>


Can anybody help, we have a customer who after a recent DB upgrade script is receiving
an error : 'ORA-20003' with no error message. We have some data validation on the database
that raises this error code but with an error message. But this problem is occuring unexpectedly
in areas where this validation is not done (and without the associated message). I had heard that
this sometimes occurs when objects are invalid but the following query returns no rows :

select * from all_objects where owner = 'APACR' and status = 'INVALID'; Thanks, Joe Mellors

I don't know if it will be of use but this is the script theyran in before the problem occured :

ALTER TABLE APACR.TBLPROJIPPTABLE
ADD (CAN VARCHAR2(20)); CREATE OR REPLACE PROCEDURE APACR.UPDATE_LOCATIONS (APROJID IN VARCHAR2,
 AIPP IN VARCHAR2,
 ACAFIG IN VARCHAR2,
 AITM IN VARCHAR2,
 AISN IN VARCHAR2,
 AIND IN NUMBER,

 APNR IN VARCHAR2, AMFC IN VARCHAR2,
 AQNA IN VARCHAR2, AICY IN VARCHAR2,
 ATQL IN VARCHAR2, ARFS IN VARCHAR2,
 AUCA IN VARCHAR2, AUCE IN VARCHAR2,
 ASMF IN VARCHAR2, AMFM IN VARCHAR2,
 ADFL IN VARCHAR2, ANIL IN VARCHAR2,
 ARTX IN VARCHAR2, AASP IN VARCHAR2,
 AILS IN VARCHAR2, AMAP IN NUMBER,
 ACTL IN VARCHAR2, AESC IN VARCHAR2,

 ACSR IN NUMBER, ANSC IN VARCHAR2,
 ANIN IN VARCHAR2, ACAN IN VARCHAR2,
 AISNSORT IN VARCHAR2, ANHA IN VARCHAR2,  APRECAN IN VARCHAR2, ACM_APPLIC IN VARCHAR2) IS
	VPDC CHAR(1);
	VPNR VARCHAR2(32);
	VMFC VARCHAR2(5);
	ICOUNT INTEGER;
	VPASN_NEEDED CHAR(1);
	IS_MASTER BOOLEAN;
	VIS_M CHAR(1);
	STRCAN VARCHAR2(20);
 	STRCAT VARCHAR2(1); 
BEGIN
	SELECT PNR, MFC
	  INTO VPNR, VMFC
	  FROM TBLLOCATIONS
	 WHERE PROJID = APROJID
	   AND IPP = AIPP
	   AND CAFIG = ACAFIG
	   AND ITM = AITM
	   AND ISN = AISN;

	VPASN_NEEDED := PASN_NEEDED(APROJID, AIPP, APNR, AMFC, 'Y');
	PASN_PACK.NUM_HELD := 0;
	PASN_PACK.PASN_HOLD.DELETE;
	PASN_PACK.NUM_HELD := PASN_PACK.NUM_HELD + 1;
	PASN_PACK.PASN_HOLD(PASN_PACK.NUM_HELD).N_PROJID := APROJID;
	PASN_PACK.PASN_HOLD(PASN_PACK.NUM_HELD).N_IPP := AIPP;
	PASN_PACK.PASN_HOLD(PASN_PACK.NUM_HELD).N_CAFIG := ACAFIG;
	PASN_PACK.PASN_HOLD(PASN_PACK.NUM_HELD).N_ITM := AITM;
	PASN_PACK.PASN_HOLD(PASN_PACK.NUM_HELD).N_ISN := AISN;
	PASN_PACK.PASN_HOLD(PASN_PACK.NUM_HELD).N_PNR := APNR;
	PASN_PACK.PASN_HOLD(PASN_PACK.NUM_HELD).N_MFC := AMFC;
	PASN_PACK.PASN_HOLD(PASN_PACK.NUM_HELD).PASN_NEEDED := VPASN_NEEDED;

	SELECT PDC
	  INTO VPDC
	  FROM TBLINTPROJECT
	 WHERE PROJID = APROJID;

	IF VPDC = 'I' THEN
		DELETE FROM APACR.TBLPROJIPPTABLE
		 WHERE PROJID = APROJID
		   AND IPP = AIPP
		   AND PNR = APNR
		   AND MFC = AMFC
		   AND SEQNO = -1;
	ELSE
		DELETE FROM APACR.TBLPROJIPPTABLE
		 WHERE PROJID = APROJID
		   AND IPP = '%'
		   AND PNR = APNR
		   AND MFC = AMFC
		   AND SEQNO = -1;
	END IF;

   	UPDATE TBLLOCATIONS
	   SET IND = AIND,
	       PNR = APNR,
	       MFC = AMFC,
	       QNA = AQNA,
	       ICY = AICY,
	       TQL = ATQL,
	       RFS = ARFS,
	       UCA = AUCA,
	       UCE = AUCE,
	       SMF = ASMF,
	       MFM = AMFM,
	       DFL = ADFL,
	       NIL = ANIL,
	       RTX = ARTX,
	       ASP = AASP,
	       ILS = NULL,
	       MAP = AMAP,
	       CTL = ACTL,
	       ESC = AESC,
	       CSR = ACSR,
	       NSC = ANSC,
	       NIN = ANIN,
	       CAN = ACAN,
	       NHA = ANHA,
	       PRECAN = APRECAN,
	       CM_APPLIC = ACM_APPLIC
	 WHERE PROJID = APROJID
	   AND IPP = AIPP
	   AND CAFIG = ACAFIG
	   AND ITM = AITM
	   AND ISN = AISN;

	COMMIT;

	IF (GET_IPP_MASTER_STATUS(AIPP) = 'Y') AND ((VPNR <> APNR) OR (VMFC

<> AMFC)) THEN
IF VPDC = 'I' THEN SELECT COUNT(*) INTO ICOUNT FROM APACR.TBLMASTERPARTS WHERE PROJID = APROJID AND IPP = AIPP AND PNR = VPNR AND MFC = VMFC; IS_MASTER := ICOUNT > 0; SELECT COUNT(PROJID) INTO ICOUNT FROM TBLLOCATIONS WHERE PROJID = APROJID AND IPP = AIPP AND PNR = VPNR AND MFC = VMFC; IF IS_MASTER AND (ICOUNT = 0) THEN DELETE FROM APACR.TBLMASTERPARTS WHERE PROJID = APROJID AND IPP = AIPP AND PNR = VPNR AND MFC = VMFC; GET_CAN_CAT(APROJID, USER, STRCAT, STRCAN); INSERT INTO APACR.TBLPROJIPPTABLE (PROJID, IPP, PNR, MFC, SEQNO, CAN) VALUES (APROJID, AIPP, VPNR, VMFC, -1, STRCAN); END IF; ELSE SELECT IS_MASTER INTO VIS_M FROM TBLPROJECTPARTS WHERE PROJID = APROJID AND PNR = VPNR AND MFC = VMFC; IS_MASTER := VIS_M = 'Y'; SELECT COUNT(PROJID) INTO ICOUNT FROM TBLLOCATIONS WHERE PROJID = APROJID AND PNR = VPNR AND MFC = VMFC; IF IS_MASTER AND (ICOUNT = 0) THEN UPDATE TBLPROJECTPARTS SET IS_MASTER = NULL WHERE PROJID = APROJID AND PNR = VPNR AND MFC = VMFC; GET_CAN_CAT(APROJID, USER, STRCAT, STRCAN); INSERT INTO APACR.TBLPROJIPPTABLE (PROJID, IPP, PNR, MFC, SEQNO, CAN) VALUES (APROJID, '%', VPNR, VMFC, -1, STRCAN); END IF; END IF; END IF; COMMIT; EXCEPTION WHEN GLOBAL.COLUMN_WIDTH THEN RAISE_APPLICATION_ERROR(-20021, 'INSERTED VALUE IS TOO LARGE FOR COLUMN'); ROLLBACK; WHEN GLOBAL.MANDATORY_DATA_MISSING THEN RAISE_APPLICATION_ERROR(-20018, 'MANDATORY DATA FIELD CANNOT BE NULL'); ROLLBACK; WHEN LOCATIONRELATED.QNA_TQL_MISMATCH THEN RAISE_APPLICATION_ERROR(-20019, 'QNA AND TQL MUST BE THE SAME (REF/AR)'); ROLLBACK; WHEN LOCATIONRELATED.ICY_LENGTH THEN RAISE_APPLICATION_ERROR(-20020, 'ICY INCORRECT LENGTH'); ROLLBACK; WHEN GLOBAL.CAT1_CAT2 THEN RAISE_APPLICATION_ERROR(-20102, 'DEFAULT CAN/CAT IS MISSING'); ROLLBACK; WHEN OTHERS THEN RAISE_APPLICATION_ERROR(-20000, 'UNKNOWN ERROR - DATA NOT COMMITED'); ROLLBACK;

END;
/ Received on Fri May 03 2002 - 19:20:16 CEST

Original text of this message