2014-01-28 6 views
2

я определяю члена функции для этого типа:Как использовать самоопределенные типы с вложенными таблицами в функциях-членах PL/SQL?

CREATE OR REPLACE TYPE HITO_T (

nombre   VARCHAR2 (20) , 
    categoria  VARCHAR2 (20) , 
    estado   VARCHAR2 (10) , 
    costo_entrada NUMBER (10,0), 
    zonas   ZONA_TABLE_T, 
    MEMBER FUNCTION listar_zonas RETURN ZONA_T 

); /

Тип имеет атрибут для вложенной таблицы и функция должна вернуть все значения для этой вложенной таблицы, так, что у меня есть:

CREATE OR REPLACE HITO_T тип кузова, как

MEMBER FUNCTION listar_zonas RETURN VARCHAR2 is 
    BEGIN 
     return self.zonas 
    END listar_zonas; 

END; /

Определения ZONA_T и ZONA_TABLE_T являются:

CREATE OR REPLACE TYPE ZONA_T ПОД LUGAR_TIPO (

nombre   VARCHAR2(20), 
    tamano   NUMBER, 
    poligonos  POLIGONO_TABLE, 
    MEMBER FUNCTION listar_poligonos RETURN POLIGONO_T); 

/

CREATE OR REPLACE TYPE ZONA_TABLE_T КАК ТАБЛИЦА ZONA_T; /

Я не могу начать пытаться, так как не знаю, как вызвать функцию. Мой конкретный вопрос заключается в том, как вызвать функцию для проверки ее с фактическими объектами в базе данных, вместо того, чтобы использовать один определенный в данный момент (т. Е. CALL HITO_T ('a', 'b', 'c' ...). .. не будет работать, потому что функция нуждается в значениях из атрибута zonas, который представляет собой вложенную таблицу и не может быть определен в данный момент точно так же). Более того, я не уверен, что могу просто вернуть «self.zonas» именно так.

Любые идеи?

+0

Вы пробовали 'HITO_T.listar_zonas'? или выбрали его из вашей вложенной таблицы? – hmmftg

ответ

0

Утверждение VALUE было тем, что я искал.