Как передать несколько элементов в предложение IN в процедуре, например, EXEC TEST1 ('A', 'E') или EXEC TEST1 ('A', 'D', 'E')? Количество предметов не определено заранее.
Только с одним элементом процедура TEST1 может быть следующей.
И EXEC TEST1 ('A') или TEST1 ('E') работает без проблем.
CREATE TABLE T1 (
C1 VARCHAR2,
C2 VARCHAR2
);
INSERT INTO T1(C1) VALUES ('A');
INSERT INTO T1(C1) VALUES ('B');
INSERT INTO T1(C1) VALUES ('C');
INSERT INTO T1(C1) VALUES ('D');
INSERT INTO T1(C1) VALUES ('E');
CREATE OR REPLACE PROCEDURE TEST1(p1 IN VARCHAR2)
IS
BEGIN
INSERT INTO T1(C2)
SELECT C1 FROM T1 WHERE C1 IN (p1);
END;
/
Как следует изменить приведенный выше код, чтобы он мог принимать несколько элементов ввода без заранее определенного числа?
Что изменится?