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

Oracle:プロシージャ内のEXECUTEIMMEDIATEステートメントにプロシージャローカル変数を使用する方法

    プロシージャのローカル変数は、USING [OUT][IN]を使用してクエリプレースホルダーにバインドできます。 条項:

      local_id number;
    BEGIN
      EXECUTE IMMEDIATE 
           'SELECT SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL into :local_id FROM dual'
         USING OUT local_id;
    

    ただし、このクエリでは、execute immediateする必要はありません。 、実行するだけです:

      local_id number;
    BEGIN
      SELECT SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL into local_id FROM dual;
    

    Oracle 11gでは、代入演算子を使用してこれを行うことができます:

      local_id number;
    BEGIN
      local_id := SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL;
    


    1. MySQLのクエリのGROUPBY句は、場合によってのみ接続をクラッシュさせます

    2. C#.NET + PostgreSQL

    3. MySQL、NULLまたは空の文字列を挿入する方が良いですか?

    4. MySQL外部キー、テーブルを作成できません(errno:150)