Plsql 如何在PL/SQL中绑定变量中的数组
如何在PL/SQL中绑定变量中的数组 例如,我有以下数组:Plsql 如何在PL/SQL中绑定变量中的数组,plsql,bind-variables,Plsql,Bind Variables,如何在PL/SQL中绑定变量中的数组 例如,我有以下数组: array_col3 = {1,2,3,4,5,6,7} 现在,我想从基于数组的表中进行选择 在plsql中,它并不是那么简单。您必须使用类型,看看dbms_实用程序包 例如: Va dbms_utility.number_array; Va(1) := 1; Va(2) := 2; 希望下面的代码片段能有所帮助 SET serveroutput ON; DECLARE lv sys.odcivarchar2list:=sy
array_col3 = {1,2,3,4,5,6,7}
现在,我想从基于数组的表中进行选择
在plsql中,它并不是那么简单。您必须使用类型,看看dbms_实用程序包 例如:
Va dbms_utility.number_array;
Va(1) := 1;
Va(2) := 2;
希望下面的代码片段能有所帮助
SET serveroutput ON;
DECLARE
lv sys.odcivarchar2list:=sys.odcivarchar2list('1','2','3','4');
lv1 sys.odcivarchar2list;
BEGIN
SELECT * BULK COLLECT
INTO lv1
FROM
( SELECT LEVEL LVL FROM DUAL CONNECT BY LEVEL < 10
)A
WHERE A.lvl IN
(SELECT COLUMN_VALUE FROM TABLE(LV)
) ;
dbms_output.put_line(lv1.COUNT);
END;
###############################OUTPUT##########################################
anonymous block completed
4
###############################OUTPUT##########################################
您需要一个表达式:
select * from tabA where col3 in (select * from table((:array_col3)));
或者,操作员:
select * from tabA where col3 member of :array_col3;
这不是@Abhi85所要求的。Hmmm,他问:如何在PL/SQL中绑定变量中的数组。但是您的答案看起来更完整。可能是重复的。您正在使用PL/SQL以外的其他语言定义数组,并希望将其作为绑定变量传递。如果是这种情况,则需要使用动态SQL。
select * from tabA where col3 member of :array_col3;