Mega Code Archive

 
Categories / Oracle PLSQL / Object Oriented Database
 

Delete records

SQL> CREATE OR REPLACE TYPE address_obj as OBJECT(   2        street VARCHAR2(20),   3        city VARCHAR2(20),   4        state CHAR(2),   5        zip CHAR(5));   6  / Type created. SQL> SQL> CREATE TABLE address_table OF ADDRESS_OBJ; Table created. SQL> SQL> INSERT INTO address_table VALUES (ADDRESS_OBJ('1 A St.','Mobile','AL','36608')); 1 row created. SQL> SQL> CREATE TABLE client (name VARCHAR2(20),   2    address REF address_obj scope is address_table); Table created. SQL> SQL> INSERT INTO client SELECT 'Walsh', REF(aa) FROM address_table aa; 1 row created. SQL> SQL> SQL> -- SELECTing Individual Columns in TCROs SQL> SQL> SQL> SQL> -- Deleting Referenced Rows SQL> SQL> SQL> SELECT * FROM address_table; STREET               CITY                 ST ZIP -------------------- -------------------- -- ----- 1 A St.              Mobile               AL 36608 SQL> SQL> -- Now delete a row from Address_table: SQL> SQL> DELETE FROM address_table WHERE zip = '32563'; 0 rows deleted. SQL> SQL> -- And now, SELECT from the Client table that contains a reference to the Address_table: SQL> SQL> SELECT * FROM client; NAME      ADDRESS --------- -------------------------------------------------- Walsh     0000220208707EBDF1B9E344FDB604B14DA624CBA048316BEA           1E2D4128AC1F28472E126764 SQL> SQL> SELECT name, DEREF(address)   2  FROM client; NAME --------- DEREF(ADDRESS)(STREET, CITY, STATE, ZIP) ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Walsh ADDRESS_OBJ('1 A St.', 'Mobile', 'AL', '36608') SQL> SQL> SQL> SQL> drop table client; Table dropped. SQL> SQL> drop table address_table; Table dropped. SQL> SQL> SQL>