37

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」コマンドを使用する同様の方法ではないでしょうか?

4

2 に答える 2

59

まず、次のようにスクリプトを呼び出す必要があります。

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';
于 2013-09-04T18:24:53.857 に答える
5

sqlplus の実行をログに記録する場合は、次の構文を使用できます。

sqlplus.exe MYUSER/mypassword@HOST030 @refreshDataOnOracle.sql foo bar  >> log.log
于 2016-05-17T09:06:32.903 に答える