Object Oriented Oracle PLSQL Tutorial

SQL>
SQL> CREATE OR REPLACE TYPE address AS OBJECT
  2              (line1 VARCHAR2(20),
  3               line2 VARCHAR2(20),
  4               city VARCHAR2(20),
  5               state_code VARCHAR2(2),
  6               zip VARCHAR2(13));
  7  /
Type created.
SQL>
SQL> CREATE or replace TYPE temp_adds IS TABLE OF address;
  2  /
Type created.
SQL>
SQL> CREATE OR REPLACE FUNCTION myProc
  2  RETURN temp_adds PIPELINED
  3  IS
  4    addressValue address;
  5  BEGIN
  6    FOR i IN 1..5 LOOP
  7      IF (i=1) THEN
  8        addressValue := address('St.',null,'York','NY','22222');
  9      ELSIF (i=2) THEN
 10        addressValue := address('Suite','Blvd','B','IL','33333');
 11      ELSIF (i=3) THEN
 12        addressValue := address('1 Dr.',null,'P','NJ','33333');
 13      ELSIF (i=4) THEN
 14        addressValue := address('#9','Avenue','Dallas','TX','11111');
 15      ELSIF (i=5) THEN
 16        addressValue := address('1 Ct.',null,'F','MA','44444');
 17      END IF;
 18      PIPE ROW(addressValue);
 19    END LOOP;
 20    RETURN;
 21  END;
 22  /
Function created.
SQL> show errors
No errors.
SQL>
SQL> SELECT * FROM TABLE(myProc);
LINE1                LINE2                CITY                 ST
-------------------- -------------------- -------------------- --
ZIP
-------------
St.                  null                 York                 NY
22222
Suite                Blvd                 B                    IL
33333
1 Dr.                null                 P                    NJ
33333
#9                   Avenue               Dallas               TX
11111
1 Ct.                null                 F                    MA
44444
5 rows selected.
SQL>
SQL> drop type address force;
Type dropped.
SQL>
SQL> drop type temp_adds force;
Type dropped.