sql >> データベース >  >> RDS >> Oracle

OracleのPS/SQLでは、ブロックの「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. 移行時に生のクエリを実行する-3.30を続編

    2. SQLでGROUPBY句を使用する方法

    3. OracleSQLを使用して特定の範囲の誕生日を持つ従業員を選択する

    4. SQL Server2008でテーブルエイリアスを使用してUPDATESQLを作成するにはどうすればよいですか?