I'm dealing with Nested Tables and VArrays in Oracle (just to clarify, it's for learning purposes at university). I have this TABLE structure, and everything it's OK when I put the data in.
CREATE OR REPLACE TYPE Addendum AS OBJECT (
idCode VARCHAR2(10),
signature_date TIMESTAMP,
--A VARRAY(5) OF REF STUDENT (STUDENT IF THE TYPE, TSTUDENT THE TABLE)
studentlist student_list,
--A TABLE OF REF STAFF (STAFF IS THE TYPE, TSTAFF THE TABLE)
staff_members tStaff,
pdi_manager REF PDI
) FINAL;
CREATE TABLE Addendums OF Addendum
NESTED TABLE staff_members STORE AS staffmembers_nt;
CREATE UNIQUE INDEX ADDENDUMS_IDCODE_UINDEX on ADDENDUMS (IDCODE);
CREATE OR REPLACE TYPE tAddendum AS TABLE OF Addendum;
In a first try, I execute a query like SELECT * FROM ADDENDUMS
and it shows me this thing:
0000000000,2019-09-01 00:00:00.000000,"{<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF}","{<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF}"
0000000001,2019-09-01 00:00:00.000000,"{<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF}","{<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF,<failed to load> oracle.sql.REF}"
Also I tried to select with DEREF instruction and referencing explicitly the columns, with: select ad.IDCODE, ad.SIGNATURE_DATE, DEREF(ad.STUDENTLIST), DEREF(ad.STAFF_MEMBERS), DEREF(ad.PDI_RESPONSABLE) from UOC.ADDENDUMS ad;
and it shows only the PDI_MANAGER dereferenced correctly.
What can I do with VARRAY and NESTED TABLE? Like, what is the correct syntax for SQL (not PL/SQL like in this question)?