我在Apex应用中编写了PL / SQL。
我想用动态参数设置NVL
。 q
是字符串查询,:P53_INS_FIELD
是参数。当我写NVL
时,它会出错(无法解析SQL查询)。
我的代码是:
q:= q || ' and nvl(' || :P53_INS_FIELD || ' , ifl.id) = ifl.id';
在Apex中这是错误的。错误为“无法解析SQL查询”
我该怎么办?
答案 0 :(得分:1)
这样编写时,Oracle将参数的值放入字符串中。因此,如果参数的值为123
,则您在q
变量中的查询将是:
... and nvl(123, ifl.id) = ifl.id
如果该值为NULL
,则查询为:
... and nvl(, ifl.id) = ifl.id
我认为这是真正发生的事情。我想您需要编写如下内容:
q:= q || ' and nvl(:P53_INS_FIELD, ifl.id) = ifl.id';