As with Oracle 10g R2, yes, there is a required order between the item_list_1 and item_list_2 elements, even if cursor definitions are allowed inappropriate.
For example, specifying a specification is not allowed before declaring a variable:
SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi PL/SQL Release 10.2.0.4.0 - Production CORE 10.2.0.4.0 Production TNS for Solaris: Version 10.2.0.4.0 - Production NLSRTL Version 10.2.0.4.0 - Production SQL> declare 2 variable_declaration number; 3 procedure procedure_definition is begin 4 null; 5 end procedure_definition; 6 begin 7 null; 8 end; 9 / PL/SQL procedure successfully completed. SQL> declare 2 procedure procedure_definition is begin 3 null; 4 end procedure_definition; 5 variable_declaration number; 6 begin 7 null; 8 end; 9 / variable_declaration number; * ERROR at line 5: ORA-06550: line 5, column 5: PLS-00103: Encountered the symbol "VARIABLE_DECLARATION" when expecting one of the following: begin function package pragma procedure form ORA-06550: line 8, column 4: PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following: end not pragma final instantiable order overriding static member constructor map
source share