SQLDeveloper支持绑定变量的IN条件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLDeveloper支持绑定变量的IN条件相关的知识,希望对你有一定的参考价值。

我使用的是Oracle最新的SQLDeveloper版本,我有一个基本的查询,我已经粘贴到SQL工作表中。

查询包含IN条件并与绑定变量相关联

select * from items where item in :itemId

当我选择“运行语句”时,系统会提示我输入Binds,但是对于我的生活,我无法输入具有多个值的正确格式以允许查询正常运行并返回我想要的结果。

任何想法都支持吗?

答案

你可以做到这一点,但有一个'技巧'

SELECT owner,
       object_name,
       object_type
  FROM all_objects
 WHERE object_name LIKE :SEARCH
   AND owner NOT IN (
    'SYS',
    'MDSYS',
    'DBSNMP',
    'SYSTEM',
    'DVSYS',
    'APEX_050100',
    'PUBLIC',
    'ORDS_METADATA',
    'APEX_LISTENER'
)
   AND object_type IN (
    SELECT regexp_substr(:bind_ename_comma_sep_list,'[^,]+',1,level)
      FROM dual CONNECT BY
        regexp_substr(:bind_ename_comma_sep_list,'[^,]+',1,level) IS NOT NULL
)
 ORDER BY owner,
          object_name,
          object_type;

here解释了这个技巧。

以上是关于SQLDeveloper支持绑定变量的IN条件的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL 绑定变量的问题

SQL Developer SQL Tuning Advisor 并非所有变量都绑定

这个 PL/SQL 有啥问题?绑定变量 * 未声明

在 EJB 查询 IN 子句中绑定变量

如何在 PLSQL 过程中将绑定变量作为 IN OUT 参数传递

如果动态变量为真则绑定类 [all in v-for]