Mega Code Archive

 
Categories / Oracle PLSQL / Object Oriented Database
 

Use varray in a table

SQL> CREATE or replace TYPE addressType AS OBJECT (   2    street VARCHAR2(15),   3    city   VARCHAR2(15),   4    state  CHAR(2),   5    zip    VARCHAR2(5)   6  );   7  / Type created. SQL> SQL> CREATE or replace TYPE addressTypeVArray AS VARRAY(2) OF VARCHAR2(50);   2  / SQL> SQL> CREATE or replace TYPE addressTypeNestedTable AS TABLE OF addressType;   2  / Type created. SQL> SQL> --  SQL> CREATE GLOBAL TEMPORARY TABLE empTempTable (   2    id         INTEGER PRIMARY KEY,   3    fname VARCHAR2(10),   4    lname  VARCHAR2(10),   5    addresses  addressTypeVArray   6  ); Table created. SQL> SQL> CREATE TABLE empTable (   2    id         INTEGER PRIMARY KEY,   3    fname VARCHAR2(10),   4    lname  VARCHAR2(10),   5    addresses  addressTypeNestedTable   6  )   7  NESTED TABLE   8    addresses   9  STORE AS  10    nested_addresses2 TABLESPACE users; Table created. SQL> SQL> SQL> -- equal/not equal example SQL> CREATE OR REPLACE PROCEDURE equal_example AS   2    TYPE charTable IS TABLE OF VARCHAR2(10);   3    emp1 charTable;   4    emp2 charTable;   5    emp3 charTable;   6    result BOOLEAN;   7  BEGIN   8    emp1 := charTable('A', 'B', 'C');   9    emp2 := charTable('A', 'B', 'C');  10    emp3 := charTable('B', 'C', 'D');  11  12    result := emp1 = emp2;  13    IF result THEN  14      DBMS_OUTPUT.PUT_LINE('emp1 equal to emp2');  15    END IF;  16  17  END equal_example;  18  / Procedure created. SQL> SQL> drop type addressType force; Type dropped. SQL> drop type addressTypeVArray force; Type dropped. SQL> drop TYPE addressTypeNestedTable force; Type dropped. SQL> drop TABLE empTable; Table dropped.