Как привязать массивы к переменной в PL/SQL
.
Например, у меня есть массив ниже:
array_col3 = {1,2,3,4,5,6,7}
теперь я хочу select
из таблицы на основе array
.
select * from tabA where col3 in (select * from (:array_col3));
Как привязать массивы к переменной в PL/SQL
.
Например, у меня есть массив ниже:
array_col3 = {1,2,3,4,5,6,7}
теперь я хочу select
из таблицы на основе array
.
select * from tabA where col3 in (select * from (:array_col3));
Надеюсь, этот приведенный ниже фрагмент поможет.
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##########################################
В plsql это не так просто. Вы должны использовать типы, взгляните на пакет dbms_utility.
Пример:
Va dbms_utility.number_array;
Va(1) := 1;
Va(2) := 2;