I'm trying to write a query in to get IP address which is a reference of a nested table of a table that is reference of another nested table.
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
);
Here are the tables:
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 ;
Here the picture shows my tables with data
My query should retrieve nomDept where the ADRIP is equals to = '192.168.2.'4 ;
thank you in advance
You can lean about Performing DML Operations on Collections (at: Unnesting Queries with Multilevel Collections) on Oracle Objects docs:
Unnesting queries can be also used with multilevel collections, both varrays and nested tables.
This is the query:
SELECT d.nomDept
FROM Departement d,
table( d.refLogicielR ) l,
table( l.refLogiciel.installationsR) i
WHERE i.refPC.adrIP = '192.168.2.4'
I guess, with this answer, I've unlocked next Oracle Objects freaky level.