前提条件
- cygwin がインストールされていること。
- SQL*Plus がインストールされていること。
rlwrap をインストールする
% tar xfvz rlwrap-0.37.tar.gz
% cd rlwrap-0.37
% ./configure
% make
% make install
フィルタを作成する。
- /usr/local/share/rlwrap/filters/sql_filter
#!/usr/bin/perl
use lib $ENV{RLWRAP_FILTERDIR};
use RlwrapFilter;
$filter = new RlwrapFilter;
$filter-> input_handler(sub {s/:(\d+)/:bnd_$1/g; $_});
$filter-> run;
実行してみる
% export RLWRAP_FILTERDIR=/usr/local/share/rlwrap/filters
% /usr/local/bin/rlwrap -z sql_filter ./sqlplus scott/[email protected]:1521/orcl
SQL> variable bnd_1 number
SQL> execute :bnd_1 := 1
PL/SQL procedure successfully completed.
SQL> select :bnd_1 from dual;
BND_1
----------
1
SQL> exit