Oracle PL/SQL Language Pocket Reference by Steven Feuerstein, Bill Pribyl & Chip Dawes The following errata were *corrected* in the 5/06 reprint: Here's a key to the markup: [page-number]: serious technical mistake {page-number}: minor technical mistake : important language/formatting problem (page-number): language change or minor formatting problem {20} 1st paragraph; The syntax statement for a variable declaration: variable_name datatype [ CONSTANT ] .... NOW READS: variable_name [ CONSTANT ] datatype .... [65] in the sample code the two lines following the "BEGIN"; The example code had the following lines BEGIN PIPE ROW(dad_in); -- identify stream input PIPE ROW(mom_in); -- identify stream input This was completely wrong. The PIPE ROW function only pipes output and not input. If these two PIPE ROW lines are removed then and only this is the example correct. AUTHOR'S REPLY: The example NOW READS: CREATE OR REPLACE TYPE num_tab_typ AS TABLE OF NUMBER / CREATE OR REPLACE FUNCTION piped_func(factor IN NUMBER) RETURN num_tab_typ PIPELINED AS BEGIN FOR counter IN 1..1000 LOOP PIPE ROW(counter*factor); END LOOP; END piped_func; / SELECT * FROM TABLE(piped_func(2)) WHERE rownum < 5 /