バインド変数に値を入れてSQL実行(SQL*PlusとOSqlEdit)


主に管理用途で、バインド変数へ値を入れてSQL実行する方法として、OSqlEditとSQL*Plusでの2パターン記します。

[OSqlEdit]バインド変数へ値を入れてSQL実行

!bind set a = 'abc'
select :a from dual;

実行結果

他にも下記があります(command.txtを転記)
!bind set a = 'abc' -- バインド変数aに,abcを設定
!bind unset a -- バインド変数aを削除
!bind print a -- バインド変数aの内容を表示
!bind print -- 全てのバインド変数をリスト表示
!bind clear all -- 全てのバインド変数を削除

参考

インストールしたフォルダのdoc/command.txt

[SQL*Plus]バインド変数へ値を入れてSQL実行

--12cR2以降、定義と代入が1行で可能
SQL> variable a varchar2(10) = 'abc'
SQL> select :a from dual;

:A
----------------------------------------
abc

--12cR1より前、定義と代入は別々
SQL> variable a varchar2(10)
SQL>  exec :a := 'abc';

PL/SQLプロシージャが正常に完了しました。

SQL>  select :a from dual;

:A
-----------------------------------------
abc

--変数の中身の確認
SQL> print :a

A
----------------------------------------------------------------
abc

参考

SQL*Plusユーザーズ・ガイドおよびリファレンス(19c)
12.51 VARIABLE

12.32 PRINT