Oracle PL/SQL Programming, 3rd Edition by Bill Pribyl, Steven Feuerstein The following corrections were made to the 10/03 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 (4) Last paragraph; "In 1991, Oracle Corporation released Version 6.0 ..." NOW READS: "In 1988, Oracle Corporation released Version 6.0 ..." (143) Bottom of code; DBMS_OUTPUT.PUTLINE --(occurs twice without underscore) NOW READS: DBMS_OUTPUT.PUT_LINE (161) Last declaration in the sample code section; l_stevenCONSTANT person := NOW READS: l_steven CONSTANT person := {221} Halfway down the page, first bulleted example; The result of the first example was incorrectly listed without the trailing period. -> 'Brighten the corner where you are' NOW READS: -> 'Brighten the corner where you are.' (268) second to last line; missing a comma. SYEAR, YEAR SYear, NOW READS: SYEAR, YEAR, SYear, {307} IN PRINT: Last paragraph, last three lines below table 10-6; "The following example illustrates the difference between CURRENT_TIMESTAMP, which is used to get the time in the server's time zone, and SYSTIMESTAMP, which is used to get the time in the session's time zone." NOW READS: "The following example illustrates the difference between CURRENT_TIMESTAMP, which is used to get the time in the session's time zone, and SYSTIMESTAMP, which is used to get the time in the server's time zone." (407) In the code listing at the very top of page 407: WHERE falls_name='Tannery Falls'; NOW READS: WHERE falls_name='Dryer Hose'; (472) IN PRINT: code example, last three lines; "BEGIN OPEN sess; FETCH sess INTO rec; CLOSE sess;" These two lines of code HAVE BEEN DELETED. page 491, SQL%FOUND (in code and text) NOW READS: SQL%ROWCOUNT l_foundsome BOOLEAN; NOW READS: l_numfound PLS_INTEGER; l_foundsome := SQL%FOUND NOW READS: l_numfound := SQL%ROWCOUNT page 503 IN PRINT: bard_rec bard_cur%ROWTYPE NOW READS: bard_rec bookinfo_pkg.bard_cur%ROWTYPE page 504, CLOSE bcur; NOW READS: CLOSE bard_cur; (605) "Requirements for calling functions", 4th bullet point; RESTRICT_REFEFRENCES NOW READS: RESTRICT_REFERENCES (659) Last item in first bulleted list; ...functions defined in built-packages... NOW READS: ...functions defined in built-in packages... (704) IN PRINT: Bottom; FUNCTION DBMS_REUSABLE. and PROCEDURE DBMS_REUSABLE. NOW READ: FUNCTION DBMS_RESUMABLE. and PROCEDURE DBMS_RESUMABLE. (710) First sentence of the chapter!; Writing the code for an application is just one step toward putting that production into application and then maintaining the code base. NOW READS: Writing the code for an application is just one step toward putting that application into production and then maintaining the code base. (767) Last paragraph; ...relies not so much "depends-on" information as it does on "referenced-by" information. NOW READS: ...relies not so much on "depends-on" information as it does on "referenced-by" information. (799) In the body of the next_book_rec function; prv_book_cur_status := book_main.book_cur%FOUND; NOW READS: prv_book_cur_status := book_maint.book_cur%FOUND; [806]Code sample at bottom, third line of code; AUTHID CURRENT_USER IS NOW READS: IS {852} example for creating catalog_history; On page 852,the CREATE TABLE code at the top of the page HAS BEEN REVISED to read as follows: CREATE TABLE catalog_history ( id INTEGER NOT NULL PRIMARY KEY, action CHAR(1) NOT NULL, action_time TIMESTAMP DEFAULT (SYSTIMESTAMP) NOT NULL, old_item catalog_item_t, new_item catalog_item_t) NESTED TABLE old_item.subject_refs STORE AS catalog_history_old_subrefs NESTED TABLE new_item.subject_refs STORE AS catalog_history_new_subrefs;