Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plsql 如何在PL/SQL中绑定变量中的数组_Plsql_Bind Variables - Fatal编程技术网

Plsql 如何在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

如何在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:=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;