Получить значение ссылки на вложенную таблицу
Я пытаюсь написать запрос, чтобы получить 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 ;
Здесь на рисунке показаны мои таблицы с данными
Мой запрос должен получить 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.