![sqlplusバインド変数とシェルスクリプトを使用する[閉じる]](https://linux33.com/image/141731/sqlplus%E3%83%90%E3%82%A4%E3%83%B3%E3%83%89%E5%A4%89%E6%95%B0%E3%81%A8%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
バインド変数とシェルスクリプトを使用してDMLを実行したいと思います。たとえば、次のようになります。
#!/bin/bash
SH_NUM=10
sqlplus -S test_user/test_pass <<EOD
var a number;
a:=${SH_NUM}
insert into test_table values(a);
commit;
EOD
これが可能かどうかはよくわかりません。 pl / sqlを使用するときにこの方法を使用できますが、この方法も使用できるかどうかを知りたいです。
答え1
問題は、次のように変更する必要がある割り当て行です。
exec :a :=${SH_NUM};