我有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:缺少表达式
如何重写查询以使其有效。
答案 0 :(得分:0)
在您的情况下,它可能足以为第一个查询的结果提供回退:
Select nvl(cid, -1) as cid
from table1
where cNumber={{custNbr}}
这假定-1不会在table2中显示为客户ID。因此,UPDATE
在语法上是有效的,但它将更新零行。
CAVEAT
但是,我强烈怀疑一个无法处理NULL
值作为数据库查询输入的工具。您可能想要联系DevTest支持。