PL SQL Oracle PLSQL

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>