Home » SQL & PL/SQL » SQL & PL/SQL » PLS-00907: cannot load libraryunit PROD.DAILY_RPT (referenced by ) (11G)
PLS-00907: cannot load libraryunit PROD.DAILY_RPT (referenced by ) [message #653297] Fri, 01 July 2016 02:28 Go to next message
venkat111
Messages: 4
Registered: July 2016
Location: Hyderabad
Junior Member
Hi,

I have Daily Schedular Jobs in Oracle, It was working fine every day.

But some days we are getting below ERROR and JOB gets failed.

"ORA-06550: line 0, column 0:
PLS-00907: cannot load library unit PROD.DAILY_RPT(referenced by )
"

DB user: PROD
JOB Name:DAILY_RPT

I spent a lot of time for googling, i did't get any answer.

Could any one help us, why we are getting this error.

Thank's
Re: PLS-00907: cannot load libraryunit PROD.DAILY_RPT (referenced by ) [message #653298 is a reply to message #653297] Fri, 01 July 2016 03:05 Go to previous messageGo to next message
Michel Cadot
Messages: 68643
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

When did you get this error?
What is the code getting this error?
What is the code called by this code?
What is the context of the error?
Is there anything special? Do you use Oracle and only Oracle? Is this a client-server connection or a n-tiers application?
What is your connection mode? OCI? JDBC? ODBC? Other gateway?
What did you get from your searches with Google? Why there are not addressing your problem?

Please read OraFAQ Forum Guide and How to use [code] tags and make your code easier to read.

[Updated on: Fri, 01 July 2016 03:07]

Report message to a moderator

Re: PLS-00907: cannot load libraryunit PROD.DAILY_RPT (referenced by ) [message #653357 is a reply to message #653298] Mon, 04 July 2016 00:36 Go to previous messageGo to next message
venkat111
Messages: 4
Registered: July 2016
Location: Hyderabad
Junior Member
Thank's Michel, for your quick replay.

We have scheduled this job at 00:30:00 US/Eastern, it will run every day.

Every day it was working fine, we don't know some time we are getting this error and JOB gets FAILED.

After what if we run manually it is working.

ERROR CODE:

ORA-06550: LINE 0, COLUMN 0:
PLS-00907: cannot load library unit PROD.DAILY_RPT (referenced by ).

Pleas see below my PROCEDURE. Nothing special is their we are just generating extracts(files) that's it.

For that we are using UTL_FILE PACKAGE. Here we have Main Procedure and sub-procedures.

We are using this directly in oracle only.

.......... MAIN PROCEDURE...........
create or replace
PROCEDURE                                              DAILY_RPT
As 
P_date varchar2(20):=to_char(sysdate-1,'mm/dd/yyyy');
V_Process_Name Varchar2(50):='DAILY_RPT';
V_Seq Number :=0;

BEGIN 
 select SEQ_DATAXPROCESSLOG_MONTHEND.NEXTVAL into v_seq from dual;
Insert Into Log_Month_End
  (SEQ_NUM,PROCESS_NAME, STATUS,PROCESS_DATE,module_name) 
  Values
  (V_Seq,V_Process_Name,'STA',Sysdate,'CONSOLIDATED');
  Commit;
FOR REC IN  (
select distinct CSO_ID,ST_Code from  csoid_Stcode 
where --cso_id>=9 
 (cso_id,st_code) not   in  (select cso_id,st_code from test_stores)

 and cso_id in (9,900)
 
 order by cso_id

)
 
Loop

INSERT INTO TIMINGS (CSO_ID ,PROCESS_NAME ,STATUS ,DATE_CREATED )
VALUES(REC.CSO_ID,v_process_name,'STA',SYSDATE)
;

Agin_Detai (P_Date,rec.cso_id);
ACHPORT_CONSOL (P_DATE,REC.CSO_ID);
Revenue_olidated (P_Date,rec.cso_id);
teral_Type_Consol (P_Date,rec.cso_id);
dloan_Consoli (P_Date,rec.cso_id);
s_until_DON(P_Date,rec.cso_id);
proff_Loa(P_Date,rec.cso_id);
DBMS_OUTPUT.PUT_LINE('P_Date..........'||P_DATE);

INSERT INTO TIMINGS (CSO_ID ,PROCESS_NAME ,STATUS ,DATE_CREATED )
VALUES(REC.CSO_ID,v_process_name,'COM',SYSDATE)
;
end LOOP;
commit;
UPDATE LOG_MONTH_END SET JOB_END_TIME=SYSDATE WHERE SEQ_NUM=V_SEQ;

Commit;
MAIL_ALERT_rpt();

END;

.................SUB-PROCEDURE...................
create or replace
PROCEDURE Agin_Detai (P_date varchar2,p_cso_id number)
AS 
V_FILE UTL_FILE.FILE_TYPE ;
V_FILENAME VARCHAR(100);
v_delimitedchar char(1);
V_PROCESS_NAME VARCHAR(100):='AGIN_DETAIL';
V_CNT NUMBER:=0;
V_SQLERRORMSG VARCHAR(150);
v_sqlerrorcd varchar(150);
v_dt date:=to_date(P_date,'mm/dd/yy');v_path varchar2(50);v_seq number;

BEGIN 
--select path into v_path from extract_csoid_Stcode where cso_id=p_cso_id;
select distinct trim(path) into v_path from csoid_Stcode where cso_id=p_cso_id ;
SELECT SEQ_DATAXPROCESSLOG.NEXTVAL INTO V_SEQ FROM DUAL;
INSERT INTO error_log
  (SEQ_NUM,PROCESS_NAME, STATUS,PROCESS_DATE) 
  VALUES
  (v_seq,V_PROCESS_NAME,'STA',SYSDATE);commit;
  
  V_Delimitedchar:=Chr(124);
  V_Filename:='AGIN_DETAIL_CONSOLIDATED_'||V_Dt||'.TXT';
  V_File:=Utl_File.Fopen(V_Path,V_Filename,'W',32767);
  Utl_File.Put_Line (V_File,'Customer #|First Name|Last Name|Store #|Loan #|Loan Date|Loan Amt|CSO Fee|CRF Fee|Total Due|Due Date|Loan Age|Days until due|Pay Frequency|Scheduled ACH date|Scheduled ACH Amount|ACH source|Installment Due Amount|Product Type|Street Address|City|State ID|ZIP|Phone #|Phone Type'||Chr(13));
  FOR REC IN (

SELECT BO.BO_CODE AS CUSTOMER,
       bo.first_name as FirstNAME, 
       bo.last_name as LastName,
       Mas.Cso_St_Code As Store,
       Mas.Loan_Code As Loan,
       TO_CHAR(MAS.LOAN_DATE,'mm/dd/yyyy') AS LOANDATE, 
      ......

FROM LOAN_MASTER MAS
INNER JOIN CUST_MASTER BO ON BO.BO_CODE = MAS.BO_CODE
inner join cust_address ba on ba.bo_code = mas.bo_code
--inner join bo_phone bp on bp.bo_code = mas.bo_code and bp.is_primary = 'Y'
--inner join lt_pa_phone_type pt on pt.phone_id = bp.phone_id

where loan_status_id = 'OPN'  --and mas.cso_st_code not in (1)
--and trunc(mas.loan_date) >= to_date(v_Start_date,'mm/dd/yyyy')
 and trunc(mas.loan_date) <= to_date(P_date,'mm/dd/yyyy') and mas.cso_id=p_cso_id
and (mas.cso_id,mas.cso_st_code) not   in  (select cso_id,cso_st_code from cso_test_stores)
order by 13,5

)
Loop
Utl_File.Put_Line (V_FILE,REC.	Customer	||V_DELIMITEDCHAR||
REC.	FIRSTNAME	||V_DELIMITEDCHAR||
REC.	LASTNAME	||V_DELIMITEDCHAR||
REC.	Store	||V_DELIMITEDCHAR||rec.loan||v_delimitedchar||
REC.	LoanDate	||V_DELIMITEDCHAR||
Rec.	Loanamt	||V_Delimitedchar||
REC.	CSOFee	||V_DELIMITEDCHAR||rec.credit_fee||V_DELIMITEDCHAR||
REC.	TotalDue	||V_DELIMITEDCHAR||
REC.	DueDate	||V_DELIMITEDCHAR||
REC.	DaysfromLoanDate	||V_DELIMITEDCHAR||
rec.DaysFromCurrentDay||v_delimitedchar||
REC.	PayFrequency	||V_DELIMITEDCHAR||
REC.	ScheduledACHDate	||V_DELIMITEDCHAR||
REC.	ScheduledACHAmount	||V_DELIMITEDCHAR||
REC.	ACHsource	||V_DELIMITEDCHAR||
REC.	InstallmentDueAmount	||V_DELIMITEDCHAR||
--REC.	FirstMissedDueDate	||V_DELIMITEDCHAR||
--REC.	SecondMissedDueDate	||V_DELIMITEDCHAR||
REC.	ProductType	||V_DELIMITEDCHAR||
REC.	StreetAddress	||V_DELIMITEDCHAR||
REC.	City	||V_DELIMITEDCHAR||
REC.	StateId	||V_DELIMITEDCHAR||
REC.	Zip	||V_DELIMITEDCHAR||
Rec.	Phone	||V_Delimitedchar||
Rec.	Phonetype	||CHR(13)  
);

V_CNT:=V_CNT+1;
END LOOP;

UTL_FILE.FCLOSE(V_FILE);

INSERT INTO error_log
 (SEQ_NUM, PROCESS_NAME, 
                 STATUS,PROCESS_DATE,CNT
               )
        VALUES (SEQ_DATAXPROCESSLOG.NEXTVAL, V_PROCESS_NAME, 
                'COM',SYSDATE,V_CNT
               );
  
COMMIT;
EXCEPTION 
WHEN OTHERS
THEN 
V_SQLERRORCD:=SQLCODE;
V_SQLERRORMSG :=SUBSTR(SQLERRM,1,125);

INSERT INTO error_logt
 (SEQ_NUM, PROCESS_NAME, 
                 STATUS,PROCESS_DATE,ERROR_MSG,ERROR_ID
               )
        VALUES (SEQ_DATAXPROCESSLOG.NEXTVAL, V_PROCESS_NAME, 
                'ERR',SYSDATE,V_SQLERRORMSG,V_SQLERRORCD
               );
 
commit;

END;


[mod-edit: code tags added by bb]

[Updated on: Mon, 04 July 2016 01:15] by Moderator

Report message to a moderator

Re: PLS-00907: cannot load libraryunit PROD.DAILY_RPT (referenced by ) [message #653358 is a reply to message #653357] Mon, 04 July 2016 00:46 Go to previous messageGo to next message
Michel Cadot
Messages: 68643
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

Read WHEN OTHERS.

And PLEASE format your code.
Re: PLS-00907: cannot load libraryunit PROD.DAILY_RPT (referenced by ) [message #653459 is a reply to message #653358] Wed, 06 July 2016 06:03 Go to previous messageGo to next message
venkat111
Messages: 4
Registered: July 2016
Location: Hyderabad
Junior Member
Code Format

.......... MAIN PROCEDURE...........

create or replace
PROCEDURE DAILY_RPT
As
P_date varchar2(20):=to_char(sysdate-1,'mm/dd/yyyy');
V_Process_Name Varchar2(50):='DAILY_RPT';
V_Seq Number :=0;

BEGIN
select SEQ_DATAXPROCESSLOG_MONTHEND.NEXTVAL into v_seq from dual;
Insert Into Log_Month_End
(SEQ_NUM,PROCESS_NAME, STATUS,PROCESS_DATE,module_name)
Values
(V_Seq,V_Process_Name,'STA',Sysdate,'CONSOLIDATED');

Commit;

FOR REC IN (
select distinct CSO_ID,ST_Code from csoid_Stcode
where
(cso_id,st_code) not in (select cso_id,st_code from test_stores)

and cso_id in (9,900)

order by cso_id

)

Loop

INSERT INTO TIMINGS (CSO_ID ,PROCESS_NAME ,STATUS ,DATE_CREATED )
VALUES(REC.CSO_ID,v_process_name,'STA',SYSDATE)
;

Agin_Detai (P_Date,rec.cso_id);
ACHPORT_CONSOL (P_DATE,REC.CSO_ID);
Revenue_olidated (P_Date,rec.cso_id);
teral_Type_Consol (P_Date,rec.cso_id);
dloan_Consoli (P_Date,rec.cso_id);
s_until_DON(P_Date,rec.cso_id);
proff_Loa(P_Date,rec.cso_id);

DBMS_OUTPUT.PUT_LINE('P_Date..........'||P_DATE);

INSERT INTO TIMINGS (CSO_ID ,PROCESS_NAME ,STATUS ,DATE_CREATED )
VALUES(REC.CSO_ID,v_process_name,'COM',SYSDATE)
;
end LOOP;
commit;

UPDATE LOG_MONTH_END SET JOB_END_TIME=SYSDATE WHERE SEQ_NUM=V_SEQ;

Commit;

MAIL_ALERT_rpt();

END;


.................SUB-PROCEDURE...................
create or replace
PROCEDURE Agin_Detai (P_date varchar2,p_cso_id number)
AS
V_FILE UTL_FILE.FILE_TYPE ;

V_FILENAME VARCHAR(100);

v_delimitedchar char(1);

V_PROCESS_NAME VARCHAR(100):='AGIN_DETAIL';

V_CNT NUMBER:=0;

V_SQLERRORMSG VARCHAR(150);

v_sqlerrorcd varchar(150);

v_dt date:=to_date(P_date,'mm/dd/yy');v_path varchar2(50);v_seq number;

BEGIN

select distinct trim(path) into v_path from csoid_Stcode where cso_id=p_cso_id ;

SELECT SEQ_DATAXPROCESSLOG.NEXTVAL INTO V_SEQ FROM DUAL;
INSERT INTO error_log
(SEQ_NUM,PROCESS_NAME, STATUS,PROCESS_DATE)
VALUES
(v_seq,V_PROCESS_NAME,'STA',SYSDATE);commit;

V_Delimitedchar:=Chr(124);

V_Filename:='AGIN_DETAIL_CONSOLIDATED_'||V_Dt||'.TXT';

V_File:=Utl_File.Fopen(V_Path,V_Filename,'W',32767);

Utl_File.Put_Line (V_File,'Customer #|First Name|Last Name|Store #|Loan #|Loan Date|Loan Amt|CSO Fee|CRF Fee|Total Due|Due Date|Loan Age|Days until due|Pay Frequency|Scheduled ACH date|Scheduled ACH Amount|ACH source|Installment Due Amount|Product Type|Street Address|City|State ID|ZIP|Phone #|Phone Type'||Chr(13));

FOR REC IN (
SELECT BO.BO_CODE AS CUSTOMER,
bo.first_name as FirstNAME,
bo.last_name as LastName,
Mas.Cso_St_Code As Store,
Mas.Loan_Code As Loan,
TO_CHAR(MAS.LOAN_DATE,'mm/dd/yyyy') AS LOANDATE,
FROM LOAN_MASTER MAS
INNER JOIN CUST_MASTER BO ON BO.BO_CODE = MAS.BO_CODE
inner join cust_address ba on ba.bo_code = mas.bo_code
where loan_status_id = 'OPN'
and trunc(mas.loan_date) <= to_date(P_date,'mm/dd/yyyy') and mas.cso_id=p_cso_id
and (mas.cso_id,mas.cso_st_code) not in (select cso_id,cso_st_code from cso_test_stores)
order by 13,5

)
Loop
Utl_File.Put_Line (V_FILE,REC. Customer ||V_DELIMITEDCHAR||
REC. FIRSTNAME ||V_DELIMITEDCHAR||
REC. LASTNAME ||V_DELIMITEDCHAR||
REC. Store ||V_DELIMITEDCHAR||
rec.loan ||v_delimitedchar||
REC. LoanDate ||V_DELIMITEDCHAR||
Rec. Loanamt ||V_Delimitedchar||
REC. CSOFee ||V_DELIMITEDCHAR||
rec.credit_fee ||V_DELIMITEDCHAR||
REC. TotalDue ||V_DELIMITEDCHAR||
REC. DueDate ||V_DELIMITEDCHAR||
REC. DaysfromLoanDate||V_DELIMITEDCHAR||
rec.DaysFromCurrentDay ||v_delimitedchar||
REC. PayFrequency ||V_DELIMITEDCHAR||
REC. ScheduledACHDate||V_DELIMITEDCHAR||
REC. ScheduledACHAmou||V_DELIMITEDCHAR||
REC. ACHsource ||V_DELIMITEDCHAR||
REC. InstallmentDue ||V_DELIMITEDCHAR||
--REC. FirstMissedDu ||V_DELIMITEDCHAR||
--REC. SecondMissedDu ||V_DELIMITEDCHAR||
REC. ProductType ||V_DELIMITEDCHAR||
REC. StreetAddress ||V_DELIMITEDCHAR||
REC. City ||V_DELIMITEDCHAR||
REC. StateId ||V_DELIMITEDCHAR||
REC. Zip ||V_DELIMITEDCHAR||
Rec. Phone ||V_Delimitedchar||
Rec. Phonetype ||CHR(13)
);

V_CNT:=V_CNT+1;
END LOOP;

UTL_FILE.FCLOSE(V_FILE);

INSERT INTO error_log
(SEQ_NUM, PROCESS_NAME,
STATUS,PROCESS_DATE,CNT
)
VALUES (SEQ_DATAXPROCESSLOG.NEXTVAL, V_PROCESS_NAME,
'COM',SYSDATE,V_CNT
);

COMMIT;

EXCEPTION
WHEN OTHERS
THEN

V_SQLERRORCD:=SQLCODE;
V_SQLERRORMSG :=SUBSTR(SQLERRM,1,125);

INSERT INTO error_logt
(SEQ_NUM, PROCESS_NAME,
STATUS,PROCESS_DATE,ERROR_MSG,ERROR_ID
)
VALUES (SEQ_DATAXPROCESSLOG.NEXTVAL, V_PROCESS_NAME,
'ERR',SYSDATE,V_SQLERRORMSG,V_SQLERRORCD
);

commit;

END;
Re: PLS-00907: cannot load libraryunit PROD.DAILY_RPT (referenced by ) [message #653461 is a reply to message #653459] Wed, 06 July 2016 06:38 Go to previous messageGo to next message
Michel Cadot
Messages: 68643
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator
Michel Cadot wrote on Mon, 04 July 2016 07:46

Read WHEN OTHERS.

And PLEASE format your code.


Read the link I gave you above!
Re: PLS-00907: cannot load libraryunit PROD.DAILY_RPT (referenced by ) [message #653617 is a reply to message #653461] Tue, 12 July 2016 13:40 Go to previous message
Bill B
Messages: 1971
Registered: December 2004
Senior Member
If you want to see what is really failing, then comment out the exception handling and let it fail. It will show you the exact line it is failing on and why.
Previous Topic: finding constrains on table
Next Topic: Parent child count?
Goto Forum:
  


Current Time: Tue Apr 23 02:18:30 CDT 2024