SQL*Plusで、引数を以下SQLファイルに渡したい、という要件が
発生したので調査を行いました。
・test.sql
SELECT * FROM table WHERE column IN (/*ここを引数として渡したい*/);
exit;
色々試した結果、以下のような形で実行できることを確認。
・test.sql
SELECT * FROM table WHERE column IN (&1);
exit;
・sqlplus実行
sqlplus user/pass@db @test.sql " 'arg1','arg2','arg3'"
仕様がよくわかりませんが、水色部分に
何らかの文字がないとエラーになるようです。
# 状況によってはスペースを「N」に置き換えても実行可能
こんな微妙なことをする機会は今後なさそうですが、念のため覚書。