否定绑定变量

Negate a bind variable

我正在使用 APEX 5.0,我有一个查询,例如:

Select * FROM table where condition = :BIND_VARIABLE

我有一个动态填充绑定变量的列表。该列表有两个绑定变量可以采用的值:

Value 1
Everything except value 1

'Everything else' 返回的值是用户控制的,所以我不能有 EXISTS 或 IN,因为我不知道那里的所有值。

是否可以做类似的事情

Select * FROM table 其中条件 = !'Value 1'

我不记得 oracle 子字符串的确切语法,但您可以尝试类似的方法:

Select *
FROM table
where
(condition = :BIND_VARIABLE AND SUBSTR(:BIND_VARIABLE, 1, 1) <> '!')
OR
(condition <> SUBSTR(:BIND_VARIABLE, 2) AND SUBSTR(:BIND_VARIABLE, 1, 1) = '!')

因此,如果您的值以 ! 符号开头 - 您将查找除传递值

之外的所有值