Передача параметра в SQL из пакетного файла - появляется значение мусора - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь передать параметры в скрипт SQL, как указано здесь. Здесь

Это мой командный файл.

testUpdate.bat

@echo off
sqlplus myuser@mydb/mypassword @updateRundate 25042018
pause

Это мой файл sql

updateRundate.sql

update SB_ER_RUNDATE set rundate = TO_DATE( '&1', 'ddmmyyyy');
commit;
exit;

Я получаю следующую ошибку

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

old   1: update SB_ER_RUNDATE  set rundate = TO_DATE( '&1', 'ddmmyyyy')
new   1: update SB_ER_RUNDATE  set rundate = TO_DATE( 'to', 'ddmmyyyy')
update SB_ER_RUNDATE  set rundate = TO_DATE( 'to', 'ddmmyyyy')
                                               *
ERROR at line 1:
ORA-01858: a non-numeric character was found where a numeric was expected



Commit complete.

Вместо переданного параметра, значение мусора появляется взапрос.Пожалуйста, помогите мне решить эту проблему.

Обновление

Путь моей установки sqlplus

C:\app\nt to de softwares\product\11.1.0\client_1

Я заметил, что если явыводит & 3 вместо & 1, получаю значение, как softwares\product\11.1.0\client_1\product\11.1.0\client_1\sqlplus\admin\glogin.sql

& 1 выводит значение 'to'.На самом деле это часть пути установки.

Обновление 2 Я попробовал второй ответ в этом посте .Странно то, что этот скрипт не работает в моей системе, и он печатает «в» в позиции параметра.Но то же самое работает на другом ПК, на котором установлен тот же SQL плюс.

...