Ich habe einen anonymen pl/sql Block mit einer Prozedur, die darin erklärt wird, sowie einen Cursor. Wenn ich die Prozedur vor dem Cursor deklariere, schlägt sie fehl. Gibt es eine Anforderung, dass Cursor vor Prozeduren deklariert werden?Reihenfolge der Deklaration in einem anonymen pl/sql Block
Welche anderen Regeln gibt es für die Reihenfolge der Deklaration in einem PL/SQL-Block?
Dies funktioniert:
DECLARE
cursor cur is select 1 from dual;
procedure foo as begin null; end foo;
BEGIN
null;
END;
Dies wird mit Fehler PLS-00103: Encountered the symbol "CURSOR" when expecting one of the following: begin function package pragma procedure form
DECLARE
procedure foo as begin null; end foo;
cursor cur is select 1 from dual;
BEGIN
null;
END;
Die Dokumentation Referenz hier http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/block.htm#i32791 Es ist nicht sehr klar, aber "Element Deklarationen" (zB Variablen) sind in der Liste 1 und muss vor "procedure/function definitions" wh kommen Ich bin in Liste 2. –
@Gary: Ausgezeichnet, danke! –