ORA-00936: отсутствует выражение для динамических данных
У меня есть 2 запроса, который принимает данные динамически.
Select cid from table1 where cNumber={{custNbr}}
Здесь {{custNbr}} происходит из файла.txt.
update table2 set status='A' where customer_id=NVL({{cid}},0000)
Здесь {{customer_id}} берется из вывода шага 1.
Проблема: когда шаг 1 возвращает NULL, он фактически возвращает пустую строку ''
, В результате Шаг 2 переводится в -
update table2 set status='A' where customer_id=NVL(,0000)
Это выдает ошибку java.sql.SQLSyntaxErrorException: ORA-00936: отсутствует выражение
Как мне переписать запросы, чтобы они работали.
1 ответ
В вашем случае, вероятно, достаточно предоставить запасной вариант для результата первого запроса:
Select nvl(cid, -1) as cid
from table1
where cNumber={{custNbr}}
Это предполагает, что -1 не появляется как идентификатор клиента в таблице2. Следовательно UPDATE
будет синтаксически допустимым, но обновит ноль строк.
ПРЕДОСТЕРЕЖЕНИЕ
Тем не менее, я бы сильно с подозрением относился к инструменту, который не может справиться NULL
значения в качестве входных данных для запросов к базе данных. Вы можете связаться со службой поддержки DevTest по этому поводу.