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

OracleSQLDeveloperのコードウィンドウで変数を使用してSQLコードを実行する

    私がこれを正しく読んでいるなら、あなたはOracle置換変数。

    これにより、値を入力するたびにプロンプ​​トが表示されます。&valを使用すると、@runtimeがプロンプト表示されます

      SELECT
          CFS.CAE_SEC_ID,
          CFS.FM_SEC_CODE,
          CFS.LAST_USER_ID,
          CASE 
              when &p_USBank_n = 1 then
                sl.usbank_to_edit
              else
                CASE 
                  when '&p_user_id_c' = CFS.last_user_id then
                    sl.owner_to_edit
                  else
                    sl.to_edit
                end
            end canEdit
        FROM
        CAEDBO.CAE_FOF_SECURITY CFS
        INNER JOIN caedbo.CAE_DATA_SET_ELEMENT CDSE_STAT 
            ON (CDSE_STAT.DATA_SET_ELEMENT_ID = CFS.APPR_STATUS)
        INNER JOIN caedbo.CAE_STATE_LOOKUP sl 
            ON (sl.object_state =  CDSE_STAT.data_set_element_id)
       where 
          CFS.CAE_SEC_ID IN (3741, 3744, 3748, 3752);
    

    値を保持するように&&varに変更してから、

    を使用します。
    UNDEFINE var 
    

    クリアするには

    これで、DEFINEをそのまま使用することで、これらをページの上部に設定できます(したがって、プロンプトを回避できます)

    DEFINE XYZ = 5
    DEFINE AAA = to_date('10/10/2010','mm/dd/rrrr')
    DEFINE textString = AaBbCc
    
    SELECT &&XYZ b, &&AAA a, '&&textString' textString
      from dual ;
    
      B                      A                         TEXTSTRING 
      ---------------------- ------------------------- ---------- 
      5                      10.OCT.2010 00:00         AaBbCc     
      --typing define will show you all the "defined" values 
    define
    
      DEFINE XYZ = "5"
      DEFINE TEXTSTRING = "AaBbCc"
      DEFINE AAA = "to_date('10/10/2010','mm/dd/rrrr')"
    

    ダブルアンパサンドは、定義を解除するか(上記を参照)、または再定義するまで、値を「保持」します。



    1. 最後に挿入されたIDのPostgreSQL関数

    2. SQLServerのパフォーマンスTOPIOクエリ-1

    3. Mysql類似データのintの自動インクリメント

    4. MySQLの結果文字列から変数または事前定義されたCONSTANTの値をPHPで出力します