PLS-00113: END identifier must match

Jeff Ward

Member²
We have just upgraded ftom 9.4 to 10.01.169 and now when compling packages we are sometimes getting PLS-00113: END identifier must match errors

We can work round the problem by copying the spec and body into seperate SQL windows and running them seperately
 
I have upgradet on 3 computers too, on the two Win7/64 I have the same problem, but only if the compiled object is owned by a different user. The original name in the END statement (the last END of the module) is replaced by P$number$ in the source copied to the database. The replaced number changes with avery run. (Examples: P$81698208$, P$10386360$). Additionaly the window with the error message disapears, only the status line "Compiled with errors" is visible. Closing the window and reopen using the source from database the entire message "PLS-00113:END identifier 'P$10386360$' must match..." is visible. (I have not packages but procedures and functions.) BTW: On the computer with Win/XP the problems doesn't exist.

 
Last edited:
Can you go to Tools > Preferences > Program Window and disable the "Safe compilation" option? Let me know if this helps.

If this helps, can you send me an example of such a package?
 
We are typically using either system or a proxy connection for the compiliaction of these packages

We have tried changing the settings as suggested and this seems to work

As a test (with the temp option re-enabled) i have just created a very simple package as follows:

create or replace package JWTEST01 is
PROCEDURE T1 ;
end JWTEST01;

create or replace package body JWTEST01 is
PROCEDURE T1 IS
v_count NUMBER ;
BEGIN
v_count := 1 ;
END T1 ;
end JWTEST01;

When compiled it failed to create the body and the end statement on the header changed to a temporary name as below:

create or replace package cbs.JWTEST01 is
PROCEDURE T1 ;
end P$689014;
 
Back
Top