1

中,如果绑定变量可以为空,是否可以Oracle将绑定变量放入子句中?IN()询问因为在 SQL 中,如果 Oracle 看到IN()其中没有任何数据,则显示错误

ORA-00936: missing expression.

编辑:没有提到不能使用 PL/SQL...

Edit2:也没有提到该变量的格式为 1、2、3 或空字符串。空字符串不能用 NULL 代替。

4

2 回答 2

1

你可以做到,它在语法上是正确的。我希望您知道 NULL 甚至不等于 NULL(因此 NULL=NULL 不是 TRUE 而是 NULL),它可能会导致查询中出现意外结果,因此如果它不影响性能,请考虑使用 NVL 函数

于 2013-09-12T13:51:04.437 回答
1

似乎正在工作:

declare

   l_statement varchar2(32767);

begin
   l_statement := 'select * from user_tables where table_name in (:a)';

   execute immediate l_statement
      using '';

end;
于 2013-09-12T13:53:11.973 回答