Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Czy PS/SQL Oracle wymaga określonej kolejności wpisów w sekcji `declare` bloku?

Od Oracle 10g R2 odpowiedź brzmi tak, istnieje wymagana kolejność między pozycjami w item_list_1 i item_list_2, nawet jeśli definicje kursora są dozwolone.

Na przykład definicja procedury nie jest dozwolona przed deklaracją zmiennej:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle — sformatuj bieżącą datę

  2. Czy instrukcja CASE i DECODE są równoważne?

  3. Funkcja agregująca w zadanym przedziale czasu

  4. Zaktualizuj kolumnę przy użyciu losowych unikalnych wartości z innej tabeli

  5. Jak uzyskać nazwę dnia tygodnia z daty?