我有一个带有这段代码的 shell 脚本:
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 之前被填充。我已经检查了内容并且没问题。
因此,当我运行脚本时,它会显示:LRM-00112: multiple values not allowed for parameter '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 ...但它没有用。
你能帮助我吗?
提前致谢。