Я пытаюсь передать параметры в скрипт 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 плюс.