Using explicit definition to define record types and a compound record type; and, the use of nested types
SQL> CREATE TABLE emp
2 (emp_id INTEGER NOT NULL
3 ,fname VARCHAR2(30 CHAR) NOT NULL
4 ,mid_name VARCHAR2(1 CHAR)
5 ,lname VARCHAR2(30 CHAR) NOT NULL
6 ,CONSTRAINT emp_pk PRIMARY KEY (emp_id));
Table created.
SQL>
SQL>
SQL> CREATE TABLE customer (
2 id NUMBER PRIMARY KEY,
3 fname VARCHAR2(50),
4 lname VARCHAR2(50)
5 );
Table created.
SQL>
SQL>
SQL>
SQL>
SQL> INSERT INTO customer (id, fname, lname)VALUES (1, 'A', 'B');
1 row created.
SQL>
SQL>
SQL>
SQL> INSERT INTO customer (id, fname, lname)VALUES (2, 'C', 'D');
1 row created.
SQL>
SQL>
SQL>
SQL> INSERT INTO customer (id, fname, lname)VALUES (3, 'Enn', 'F');
1 row created.
SQL>
SQL>
SQL>
SQL> INSERT INTO customer (id, fname, lname)VALUES (4, 'G', 'H');
1 row created.
SQL>
SQL>
SQL>
SQL> INSERT INTO customer (id, fname, lname)VALUES (5, 'G', 'Z');
1 row created.
SQL>
SQL>
SQL>
SQL>
SQL> SET ECHO ON
SQL>
SQL>
SQL> DECLARE
2 TYPE emp_record IS RECORD(emp_id INTEGER,fname VARCHAR2(30 CHAR),mid_name VARCHAR2(1 CHAR),lname VARCHAR2(30 CHAR));
3
4 TYPE address_record IS RECORD(address_id INTEGER,emp_id INTEGER,address1 VARCHAR2(30 CHAR),address2 VARCHAR2(30 CHAR)
5 ,address3 VARCHAR2(30 CHAR),city VARCHAR2(20 CHAR),state VARCHAR2(20 CHAR),postal_code VARCHAR2(20 CHAR),country_code VARCHAR2(10 CHAR));
6
7
8 TYPE empType IS RECORD(emp emp_RECORD,address ADDRESS_RECORD);
9
10
11 anEmp empType;
12
13 BEGIN
14
15
16 anEmp.emp.emp_id := 3;
17 anEmp.emp.fname := 'U';
18 anEmp.emp.mid_name := 'S';
19 anEmp.emp.lname := 'G';
20
21
22 anEmp.address.address_id := 1;
23 anEmp.address.emp_id := 3;
24 anEmp.address.address1 := 'R';
25 anEmp.address.address2 := '';
26 anEmp.address.address3 := '';
27 anEmp.address.city := 'City';
28 anEmp.address.state := 'NY';
29 anEmp.address.postal_code := '10027-1111';
30 anEmp.address.country_code := 'USA';
31
32 INSERT INTO emp VALUES(anEmp.emp.emp_id,anEmp.emp.fname,anEmp.emp.mid_name,anEmp.emp.lname);
33
34
35 COMMIT;
36
37 END;
38 /
PL/SQL procedure successfully completed.
SQL>
SQL> drop TABLE emp;
Table dropped.
SQL> drop table customer;
Table dropped.
SQL>
Related examples in the same category