У меня есть сценарий оболочки с этим кодом:
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: для параметра '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 ... но это не сработало.
Вы можете мне помочь?
Заранее спасибо.