Home » Developer & Programmer » Forms » ORA-06508: PL/SQL: could not find program unit being called ( Oracle 10g R-2, oracle Developer-10g, oracle Developer-6i)
ORA-06508: PL/SQL: could not find program unit being called [message #443935] Thu, 18 February 2010 01:15 Go to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member

Dear all,

we are facing a problem, your suggestions and comments will be very helpful here.

Actually what happens is that we are connected to oracle through forms 6i. suddenly we receive the error
" ORA-06508: PL/SQL: could not find program unit being called "
while doing some transaction.
we have searched on net and meta link. they say that the package / procedure called has become invalid or recompilation has occurred and that is not compatible.
Now we have monitored carefully that there are no changes what so ever has been made in the the package/ procedure.

what could be the reason behind this.
we have also checked the global variable issue. we use package level variables but declared in the package body only. (so these are not public)
what you say ?
Need your opinion.

Thanks

Ahmad Saeed




Re: ORA-06508: PL/SQL: could not find program unit being called [message #443996 is a reply to message #443935] Thu, 18 February 2010 05:15 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
Are you getting that error still?

As oracle suggested at may happen when ever the object gets invalid statement due to teh dependent object re compilation or any error occured on that object or its dependent object.
If it successfully compiled then you wont get that error.Didi you try to connect through that after some time? whats happend ?

sriram Smile
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444000 is a reply to message #443996] Thu, 18 February 2010 05:49 Go to previous messageGo to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member

Thanks dear,
yes this is the problem, we re-login the problem is gone.
Now why that object gets invalid even compiled all right (if changes were made).
and if the object was invalid then why re-login solved the issue.

The problem should only be occurring when trying to attempt a call first time, re-attempt should solve the issue without re-login.

what do you say ?
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444002 is a reply to message #444000] Thu, 18 February 2010 05:54 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
At that moment the dependent objects are in the compiling position....so once the process completed successfully...the object comes to the normal state so you are able to run perfectly...

Goodluck
sriram Smile
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444003 is a reply to message #444002] Thu, 18 February 2010 05:56 Go to previous messageGo to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member

well,
the error continues to show even after hours of compilation. only re-login clears the error.

Sad
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444004 is a reply to message #444002] Thu, 18 February 2010 05:56 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
By rereading your post..

Your are saying ...For each and every time when ever you are logging to that form the problem occured ?


Quote:
The problem should only be occurring when trying to attempt a call first time, re-attempt should solve the issue without re-login.

sounds doing some dynamic ddl`s are some code changes at runtime?Which may cause the object used in you form invalid.

please post some more information.

sriram Smile
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444005 is a reply to message #444003] Thu, 18 February 2010 05:58 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
We dont know what exactly you are performing on that form....
It might be helpful if you post some relavent information regarding this...

sriram Smile
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444006 is a reply to message #443935] Thu, 18 February 2010 05:59 Go to previous messageGo to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member

Nops,
There are no DDLs in the process. only update, delete and inserts in tables and some calculations.

Ahmad Saeed
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444007 is a reply to message #444006] Thu, 18 February 2010 06:01 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
ORA-06508: PL/SQL: could not find program unit being called 
Cause: An attempt was made to call a stored program that could not be found.
 The program may have been dropped or incompatibly modified, or have compiled with errors. 
Action: Check that all referenced programs,
 including their package bodies, exist and are compatible.  


sriram Smile

[Updated on: Thu, 18 February 2010 06:07]

Report message to a moderator

Re: ORA-06508: PL/SQL: could not find program unit being called [message #444011 is a reply to message #444007] Thu, 18 February 2010 06:10 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
http://www.orafaq.com/forum/mv/msg/48362/126657/0/#msg_126657

http://www.dba-oracle.com/t_ora_06508_pl_sql_could_not_find_program_unit_being_called.htm

Have you googled on this really ?


sriram Smile
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444014 is a reply to message #443935] Thu, 18 February 2010 06:15 Go to previous messageGo to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member

Dear all,
Let me explain it again ,
There is an application (APP )developed in oracle developer 6i,
the user logs in and a session is created on the database Oracle 10g R-2. OK
The user is working in forms all right and there is no problem. suddenly on one of the forms (FORM1) when a button (B1) is pressed (a back end procedure is called ) the system shows the error : ORA-06508: PL/SQL: could not find program unit being called . (Earlier this was working all right and no errors)
Now the user tries pressing the B1 again and again but no use.
user exits the form1 and open the form1 again but same problem at B1, now user exists the APP and log in again, now new session is created and all is fine again. every thing is ok.
and in the DB we have made no changes, or have made few changes. but every thing compiled all right. (Some procedure was re-compiled)
my question is that why this error occurs ? when no object is invalid. still if there is an object stat change then pressing the B1 twice should resolve the issue as oracle says the procedure is re-complied when called.
why new session is required.??
hope i have described the problem in detail.

Re: ORA-06508: PL/SQL: could not find program unit being called [message #444016 is a reply to message #444007] Thu, 18 February 2010 06:16 Go to previous messageGo to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member

what does it mean by 'incompatibly modified'
??

Ahmad Saeed
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444018 is a reply to message #444014] Thu, 18 February 2010 06:22 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
Quote:
Some procedure was re-compiled)

Why and how they were re compiled ?
Whats the reason behind that!

"Modified by the incompatable version"did you modified the any thing using oracle 10g developer?

sriram Smile

[Updated on: Thu, 18 February 2010 06:23]

Report message to a moderator

Re: ORA-06508: PL/SQL: could not find program unit being called [message #444019 is a reply to message #444018] Thu, 18 February 2010 06:29 Go to previous messageGo to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member

Sorry dear could not get your point
incompatable version of what??

we are working on a big application. some time user logs in and keep on working for hours. and if there is some change required in procedure / dependent procedure (May be just adding a space , or changing the string).
that is not the issue that what is changed. the issue is why we re-login . is it default behavior of the DB. i dont think this ..

Ahmad
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444022 is a reply to message #444018] Thu, 18 February 2010 06:35 Go to previous messageGo to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member


There is no involvement of 10g developer.
we user PLSQL developer and TOAD for writing DB packages and procedures.
the B1 buttons calls the procedure residing at db not the form.
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444023 is a reply to message #444019] Thu, 18 February 2010 06:38 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
changing the string may require re compilation of code and its dependents.
BUt as you stated that each and every time you are getting this error at the first logging right?
Have read the links posted?
specially the your path?
If not search at Metalink which may help you...
and i doubt you are mixed up the thing here?
whats the significance of oracle 10 developer here?
are you modifying the forms?
If so using of which version 6i? or 10g?(check the compatability)( are you migrated?).i guess you are mixing the database and forms issues here!
What happend when you compile your form ?does it succeded?

sriram Smile
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444024 is a reply to message #444022] Thu, 18 February 2010 06:41 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
ahmadsaeed wrote on Thu, 18 February 2010 18:05

There is no involvement of 10g developer.
we user PLSQL developer and TOAD for writing DB packages and procedures.
the B1 buttons calls the procedure residing at db not the form.

/1 OK.
/2It your wish.
/3 then what is causing those objects into invalid state?

sriram Smile
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444025 is a reply to message #444023] Thu, 18 February 2010 06:42 Go to previous messageGo to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member

Dear thank you very much for continues replies

There are no changes made in the form. the form is same all the time. (no re-compile no change)
The changes are only made in the Database level procedure P1. that is called on the when_button_pressed button trigger of B1.


Re: ORA-06508: PL/SQL: could not find program unit being called [message #444026 is a reply to message #444025] Thu, 18 February 2010 06:48 Go to previous messageGo to next message
ramoradba
Messages: 2456
Registered: January 2009
Location: AndhraPradesh,Hyderabad,I...
Senior Member
ahmadsaeed wrote on Thu, 18 February 2010 18:12
Dear thank you very much for continues replies

There are no changes made in the form. the form is same all the time. (no re-compile no change)
The changes are only made in the Database level procedure P1. that is called on the when_button_pressed button trigger of B1.

Can you post the code at when button pressed trigger at B1?

sriram Smile
Re: ORA-06508: PL/SQL: could not find program unit being called [message #444028 is a reply to message #444026] Thu, 18 February 2010 06:59 Go to previous messageGo to next message
ahmadsaeed
Messages: 24
Registered: November 2009
Location: Lahore, Pakistan
Junior Member

This is the code
This is just a procedure call.
Changes are made in some package BILLING.PKG_S06FRM00061 that is compiled all right but the user who is logged in prior to changes need to re-login to press this button and complete its work.
this should not happen

--- From here
BEGIN
BILLING.PKG_S06FRM00061.PREPARE_INVOICE(P_ORDER_TYPE_ID => :PARAMETER.P_ORDER_TYPE_ID,
P_ORDER_NO => :PARAMETER.P_ORDER_NO,
P_LOCATION_ID => :PARAMETER.P_LOCATION_ID,
P_ORDER_LOCATION_ID => :PARAMETER.P_ORDER_LOCATION_ID,
P_MRNO => :PARAMETER.P_MRNO,
P_INVOICE_TYPE_ID => :TEMP_INVOICE_MASTER.INVOICE_TYPE_ID,
P_TEMP_INVOICE_NO => :TEMP_INVOICE_MASTER.INVOICE_NO,
P_ORIGINAL_INVOICE_NO => :PARAMETER.P_ORIGINAL_INVOICE_NO,
P_TEMP_RECEIVE_NO => :TEMP_CASH_RECEIVE_MASTER.RECEIVE_NO,
P_ORIGINAL_RECEIVE_NO => :PARAMETER.P_ORIGINAL_RECEIVE_NO,

P_PATIENT_TYPE_ID => :PARAMETER.P_PATIENT_TYPE_ID,
P_OBJECT_CODE => :PARAMETER.P_OBJECT_CODE,
P_PROCESS_ID => NULL,
P_USER_MRNO => :GLOBAL.USER_MRNO,
P_TERMINAL => :GLOBAL.TERMINAL,
P_EVENT => 'Original Invoice call',
P_TRACK_INVOICE => 'N',
P_CALL_PURPOSE => 'Invoice Insertion',
P_ALERT_TEXT => V_ALERT_TEXT,
P_STOP => V_STOP);
IF V_STOP = 'Y' THEN

DISPLAY_ALERT('MESSAGE', V_ALERT_TEXT);
CLEAR_FORM(NO_VALIDATE);
EXIT_FORM(NO_VALIDATE);
EXIT_FORM(NO_VALIDATE);
ELSE
COMMIT;
END IF;
END;

-- to here
Re: ORA-06508: PL/SQL: could not find program unit being called [message #447089 is a reply to message #444028] Thu, 11 March 2010 21:55 Go to previous message
djmartin
Messages: 10181
Registered: March 2005
Location: Surges Bay TAS Australia
Senior Member
Account Moderator
Sorry that I have been so long in replying. Have you solved your problem?

When you change the procedure in the database it is given a new 'object_id' when the new code is inserted and the old code deleted. As your existing session is trying to access the procedure using the previous 'object_id', it will not be found. Therefore, the session has to be closed and a new one started. This is standard Oracle Database behaviour. You should NOT change code while a user is working. If you wish to do this then use dynamic SQL to make the call for you. Just remember that it has to be parsed every time you make the call.

David
Previous Topic: dynamic access to radio buttons (merged by CM)
Next Topic: Unable to view icons
Goto Forum:
  


Current Time: Tue Apr 23 18:23:36 CDT 2024