У меня есть коллекция таблиц типов в начале блока PLSQL, и мне пришлось использовать ее несколько раз в моем коде.
Есть ли способ использовать список (тип таблицы) в операторе SELECT?
Моя цель - написать меньше кода.
Я включил массив (TABLE) непосредственно в оператор SELECT
Ниже показан скрипт, который я пытаюсь сделать, но, видимо, я не могу этого сделать, потому что мы не можем использовать коллекции в выражении SQL (пожалуйста, проверьте оператор delete).
clear Screen
SET SERVEROUTPUT ON
SET linesize 300
SET timing ON
WHENEVER SQLERROR EXIT failure ROLLBACK;
WHENEVER oserror EXIT failure ROLLBACK;
DECLARE
code_groupe VARCHAR2 (50 CHAR);
code_grp VARCHAR2 (4 CHAR);
TYPE arrayList is table of varchar2(50);
site_code_ls arrayList;
BEGIN
code_grp := 'ABDE';
site_code_ls := arrayList ('D','C','B','A','L');
DELETE CARP.PLACES_GROUPS
WHERE CODE_GROUPE = code_grp AND CODE_PLACE NOT IN (SELECT S.CODE
FROM CARP.PLACE P
WHERE P.CODE_IMPLANTATION IN site_code_ls;
COMMIT;
END;
/
exit;