Мне нужно найти, существует ли определенный элемент внутри коллекции. Я знаю о функции EXISTS, но возвращает только true, если определенный индекс занят, а не если элемент находится внутри этой коллекции.Выбор/поиск из коллекции
У меня есть следующий вид:
CREATE OR REPLACE TYPE Person AS OBJECT (
ID NUMBER(12, 0),
FIRST_NAME VARCHAR2(100),
LAST_NAME VARCHAR2(100)
);
CREATE OR REPLACE PACKAGE MY_TYPES AS
TYPE PersonTable IS TABLE OF Person;
END MYTYPES;
тогда я попробовать следующее:
DECLARE
v_Row PERSON := PERSON(NULL, NULL, NULL);
v_Table MYTYPES.PersonTable := MYTYPES.PersonTable();
BEGIN
SELECT ID, FIRST_NAME, LAST_NAME INTO v_Row FROM TABLE(v_Table);
END;
но получает следующее сообщение об ошибке:
ORA-06550
PLS-00642: local collection types not allowed in SQL Statements.
Я также попытался:
DECLARE
v_Row PERSON := PERSON(NULL, NULL, NULL);
v_Table MYTYPES.PersonTable := MYTYPES.PersonTable();
BEGIN
SELECT ID, FIRST_NAME, LAST_NAME INTO v_Row FROM TABLE(CAST(v_Table AS MYTYPES.PersonTable));
END;
, но и получает ошибку:
ORA-00902: invalid datatype
Спасибо.
Это работает, спасибо. – randacun