|
|
PLS-00302: component "string" must be declared tips
Oracle Error Tips by Donald Burleson
|
Question:
After upgrading to Oracle HRMS 11.5.10 from Oracle HRMS 11.5.9 the AME Engine API, when called, throws the following error:
SQL> declare
2 l_Approvertab Ame_Util.Approverstable;
3 l_String VARCHAR2(4000);
4 BEGIN
5
6 Ame_Api.Getallapprovers(Applicationidin => '20007',
7 Transactionidin => '57197',
8 Transactiontypein => 'SEAMSS',
9 Approversout => l_Approvertab);
10 end;
11 /
declare
*
ERROR at line 1:
ORA-06550: line 1, column 30:
Please-00302: component 'HANDLER' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
ORA-06512: at "APPS.AME_API", line 287
We are not able to trace the issue here.
I have tried:
SQL> execute hr_utility.set_trace_options('TRACE_DEST:DBMS_OUTPUT');
SQL> execute hr_utility.trace_on;
But it doesn't create any traces.
Can anyone help me with this?
Answer:
The Oracle docs note the following on PLS-00302:
PLS-00302: component "string" must be declared
Cause: In a reference to a component (for example, in the name "A.B", "B" is a component of "A"), the component has not been declared. The component might be misspelled, its declaration might be faulty, or the declaration might be placed incorrectly in the block structure.
Action: Check the spelling and declaration of the component. Also confirm that the declaration is placed correctly in the block structure.
This, however, looks to me like a bug. Is Ame_Api valid? To check do the following:
select status from dba_objects where object_name = 'AME_API';
If it is INVALID do the following:
As apps,
alter package AME_API compile;
If this comes back with a warning or is still invalid:
select * from dba_errors where object_name = 'AME_API';
For tracing you can try:
alter session set sql_trace=true;
run the declare
alter session set sql_trace=false;