中,如果绑定变量可以为空,是否可以Oracle
将绑定变量放入子句中?IN()
询问因为在 SQL 中,如果 Oracle 看到IN()
其中没有任何数据,则显示错误
ORA-00936: missing expression.
编辑:没有提到不能使用 PL/SQL...
Edit2:也没有提到该变量的格式为 1、2、3 或空字符串。空字符串不能用 NULL 代替。
中,如果绑定变量可以为空,是否可以Oracle
将绑定变量放入子句中?IN()
询问因为在 SQL 中,如果 Oracle 看到IN()
其中没有任何数据,则显示错误
ORA-00936: missing expression.
编辑:没有提到不能使用 PL/SQL...
Edit2:也没有提到该变量的格式为 1、2、3 或空字符串。空字符串不能用 NULL 代替。
你可以做到,它在语法上是正确的。我希望您知道 NULL 甚至不等于 NULL(因此 NULL=NULL 不是 TRUE 而是 NULL),它可能会导致查询中出现意外结果,因此如果它不影响性能,请考虑使用 NVL 函数
似乎正在工作:
declare
l_statement varchar2(32767);
begin
l_statement := 'select * from user_tables where table_name in (:a)';
execute immediate l_statement
using '';
end;