次のコードを含むシェル スクリプトがあります。
sqlldr $ws_usr_eva/$ws_pass_eva@$ws_esq_eva CONTROL=/$HOME/controlfiles/CONTROL_FILE.CTL LOG=/$HOME/batch/log/LOG_FILE.$fecfile.log DATA=/$HOME/batch/input/INPUT_FILE_$fecfile.txt > /$HOME/batch/log/result_loader_eva.ora
変数 $ws_usr_eva、$ws_pass_eva、および $ws_esq_eva は、sqlldr を実行する前に入力されます。内容は確認済みでOKです。
そのため、スクリプトを実行すると、次のように表示されます: LRM-00112: 複数の値がパラメーター 'control' に許可されていません
変数なしでスクリプトを実行しようとしましたが、正常に動作します。
sqlldr user/pwd@schema CONTROL=/$HOME/controlfiles/CONTROL_FILE.CTL LOG=/$HOME/batch/log/LOG_FILE.$fecfile.log DATA=/$HOME/batch/input/INPUT_FILE_$fecfile.txt > /$HOME/batch/log/result_loader_eva.ora
構成ファイルから変数を読み取るため、sqlldr で変数を使用する必要があります。
私も sqlldr userid=$ws_usr_eva/$ws_pass_eva@$ws_esq_eva を試してみましたが、うまくいきませんでした。
手伝って頂けますか?
前もって感謝します。