SQL Navigator does not accept a kind of procedure that does accept Oracle ( and Toad)
To reproduce the problem please create the following procedure in SQL Plus or Toad :
CREATE OR REPLACE PROCEDURE test_loop2
AS
BEGIN
LOOP
LOOP
BEGIN
NULL;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END LOOP;
END LOOP;
END LOOP;
END;
/
The procedure is succesfully compiled .
Then go to SQL Navigator 6.2:
Select this procedure in the navigator , r click and select extract DDL.
Then run this procedure.
You will get an error :
ORA-24344: success with compilation error
13/15 PLS-00103: Encountered the symbol end-of-file when expecting one of the following:
begin case declare end exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe
ORA-00900: invalid SQL statement
Take into account that this procedure has a peculiarity.
The inner anonymous block is like this:
BEGIN
NULL;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END LOOP; -- END LOOP instead END
instead of (the usual way):
BEGIN
NULL;
EXCEPTION
WHEN OTHERS
THEN
NULL;
END; -- HERE
Somehow Oracle accepts this and assumes that the end loop is an end.
You need to be signed in and under a current maintenance contract to view premium knowledge articles.
© ALL RIGHTS RESERVED. Feedback Terms of Use Privacy Cookie Preference Center