Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Object Oriented
 

Pipelined Table Functions

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.