Получить значение ссылки на вложенную таблицу

Я пытаюсь написать запрос, чтобы получить IP-адрес, который является ссылкой на вложенную таблицу таблицы, которая является ссылкой на другую вложенную таблицу.

create type t_pc as object (
        Nserie number(20),
        adrIP VARCHAR(20),
        cpu VARCHAR(20)
    );

create type t_instatype as object(
    dateinst VARCHAR(20) ,
    refPC REF t_pc 
);

create type t_installations as table of t_instatype ;

create type t_logiciel as object (
    nomlogi VARCHAR(20) ,
    versionL VARCHAR(20) ,
    editeur VARCHAR(20),
    installationsR t_installations
);

create type t_refLogiciel as object (
    refLogiciel ref t_logiciel
);

create type t_reflogiciels as table of t_reflogiciel ;

create type t_adrType as object (
    rue VARCHAR(20) ,
    ville VARCHAR(20)
);

create type t_Depatement as object (
        codeDept number(20) ,
        nomDept varchar(20) ,
        budget varchar(20) ,
        refLogicielR t_reflogiciels ,
        AdrR t_adrType 
    );

Вот таблицы:

create table Departement of t_Depatement 
    nested table refLogicielR store as rlogi ; 

create table Logiciel of t_logiciel 
    nested table installationsR store as insta ; 

create table PC of t_pc ;

Здесь на рисунке показаны мои таблицы с данными

MyTables

Мой запрос должен получить nomDept, где ADRIP равен = '192.168.2.'4;

заранее спасибо

1 ответ

Решение

Вы можете рассчитывать на выполнение операций DML над коллекциями (по адресу: Отмена запросов с многоуровневыми коллекциями) в документах Oracle Objects:

Разнесенные запросы также можно использовать с многоуровневыми коллекциями, как с переменными, так и с вложенными таблицами.

Это запрос:

SELECT d.nomDept
FROM Departement d, 
     table( d.refLogicielR ) l, 
     table( l.refLogiciel.installationsR) i
WHERE i.refPC.adrIP = '192.168.2.4'

Полагаю, этим ответом я разблокировал следующий причудливый уровень Oracle Objects.

Другие вопросы по тегам