SQLPLUSを使用してコマンドラインでPL/SQLスクリプトに引数を渡すにはどうすればよいですか?そのようにPL/SQLスクリプトを呼び出すことができますが、スクリプトが成功するためには引数が必要です。スクリプトに引数を渡すことができるように、sqlplus.exeを実行するにはどうすればよいですか?
@ECHO off
// where Host030 is a tnsnames alias to a machine, port, and instance
sqlplus.exe MYUSER/mypassword@Host030 < refreshDataOnOracle.sql
pause
答えを探してみましたが、SQLPLUSの「引数の例」が見つかりませんでした。 SQL * Plusの「START」コマンドを使用する同様の方法だと思われますか?
まず、次のようにスクリプトを呼び出す必要があります。
sqlplus.exe MYUSER/mypassword@Host030 @refreshDataOnOracle.sql foo bar
OSリダイレクトの代わりに、「@」記号を使用して、実行するファイル名を示します。また、コマンドラインでスクリプトパラメータを指定します。スクリプトでは、&1
、&2
などを使用してパラメーターを参照します。
update mytable set mycol = '&2' where myid = '&1';
に変換されます
update mytable set mycol = 'bar' where myid = 'foo';
Sqlplusの実行を記録する場合は、次の構文を使用できます。
sqlplus.exe MYUSER/mypassword@Host030 @refreshDataOnOracle.sql foo bar >> log.log