Oracle
 sql >> база данни >  >> RDS >> Oracle

PS/SQL на Oracle изисква ли специфично подреждане на записи в секцията `declare` на блок

От Oracle 10g R2 отговорът е да, има задължително подреждане между елементите в item_list_1 и item_list_2, дори ако дефинициите на курсора са разрешени не на място.

Например дефиниция на процедура не е разрешена преди декларация на променлива:

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. Не може да се зареди динамична библиотека 'C:\xampp\php\ext\php_oci8.dll' - %1 не е валидно Win32 приложение

  2. Ефективен подход за попълване на временната таблица

  3. Оптимизираща заявка:DBMS_METADATA.GET_DDL (Oracle)

  4. C# Как да анализирам низ от дата в произволен зададен формат на дата на Oracle?

  5. Инсталирайте Oracle Instant клиента в Docker контейнера за Python cx_Oracle