加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长百科 > 正文

oracle – PL / SQL – 在Where子句中使用“List”变量

发布时间:2021-04-03 01:44:09 所属栏目:站长百科 来源:网络整理
导读:在PL / SQL中,如何声明包含多个值的变量MyListOfValues(MyValue1,MyValue2等) SELECT * FROM DatabaseTable WHERE DatabaseTable.Field in MyListOfValues 我正在使用Oracle SQL Developer 解决方法 使用集合: CREATE TYPE Varchar2TableType AS TABLE OF V

在PL / SQL中,如何声明包含多个值的变量MyListOfValues(MyValue1,MyValue2等)

SELECT * 
FROM DatabaseTable 
WHERE DatabaseTable.Field in MyListOfValues

我正在使用Oracle SQL Developer

解决方法

使用集合:

CREATE TYPE Varchar2TableType AS TABLE OF VARCHAR2(200);

或者使用内置类型,如SYS.ODCIVARCHAR2LIST或SYS.ODCINUMBERLIST:

VARIABLE cursor REFCURSOR;

DECLARE
  your_collection SYS.ODCIVARCHAR2LIST := SYS.ODCIVARCHAR2LIST();
BEGIN
  your_collection.EXTEND( 100 );

  your_collection(  1) := 'Some value';
  your_collection(  2) := 'Some other value';
  -- ...
  your_collection(100) := DBMS_RANDOM.STRING( 'x',20 );

  OPEN :cursor FOR
  SELECT t.*
  FROM   your_table t
         INNER JOIN
         TABLE( your_collection ) c
         ON t.id = c.COLUMN_VALUE;
END;
/

PRINT cursor;

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读