Я хотел бы сделать следующее в Oracle 10g (это надуманный пример, демонстрирующий концепции, а не реальный код)
create table orders (order_id NUMBER);
insert into table orders values (1);
insert into table orders values (2);
insert into table orders values (3);
TYPE NUMBER_ARRAY_T is TABLE of NUMBER;
PROCEDURE VALIDATE_ORDER_IDS(i_orders IN NUMBER_ARRAY_T, o_output OUT SYS_REFCURSOR)
IS
BEGIN
OPEN o_output FOR
select ??? from TABLE(i_orders) where ??? NOT IN (select order_id from orders);
END VALIDATE_ORDER_IDS;
Хранимая процедура будет вызываться с массивом, содержащим (1,2), и мы ожидаем получить в результате 3 обратно
Итак, вопрос в том, можно ли в любом случае указать имя столбца, где ??? находятся ли при использовании вложенной таблицы в качестве таблицы, чтобы вышеприведенный оператор выбора работал?