Oracle Apex 5.1在PL / SQL中使用NVL

时间:2019-01-23 09:23:41

标签: oracle-apex

我在Apex应用中编写了PL / SQL。

我想用动态参数设置NVLq是字符串查询,:P53_INS_FIELD是参数。当我写NVL时,它会出错(无法解析SQL查询)。

我的代码是:

q:= q || ' and nvl(' || :P53_INS_FIELD || ' , ifl.id) = ifl.id';

在Apex中这是错误的。错误为“无法解析SQL查询”

我该怎么办?

1 个答案:

答案 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';