Learning Oracle PL/SQL By Bill Pribyl With Steven Feuerstein This errata page lists errors outstanding in the most recent printing. If you have technical questions or error reports, you can send them to booktech@oreilly.com. Please specify the printing date of your copy. This page was updated April 18, 2008. 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 ?page-number?: reader question or request for clarification Confirmed errors: (28) 1st paragraph; Reads: "bounded with certain keyword (usually BEGIN and END)." Should read: "bounded with certain keywords (usually BEGIN and END)." (45) Near top of the page (after first code segment); immediately after "Where:", "conditionn" should be "condition". {64} first code block; author VARCHR2(200) should be: author VARCHR2(200), (64) - On INSERT statement, second line should break just prior to 'Bill Pribyl with Steven Feuerstein' (with three leading spaces on second line) instead of in the middle of 'Steven Feuerstein' (64) - the book_copies creation statement currently reads: CREATE TABLE book_copies( barcode_id VARCHAR2(100) NOT NULL PRIMARY KEY, isbn VARCHAR2(13) FOREIGN KEY REFERENCES books(isbn) ); Although the text will build the table, I would like it to read as follows int he next printing: CREATE TABLE book_copies( barcode_id VARCHAR2(100) NOT NULL PRIMARY KEY, isbn VARCHAR2(13) NOT NULL, CONSTRAINT book_copies_isbn_fk FOREIGN KEY (isbn) REFERENCES books (isbn) ); {74} Code Example; Book has: 'Reference for PL/SQL developers, ' should be: 'Reference for PL/SQL developers', (81) 4th paragraph currently reads: Notice that book_copy_qty returns a VARCHAR2, which is a acceptable input datatype to concatenate with text and print using PUT_LINE. Please change that to read: Notice that the result returned from book_copy_qty gets concatenated with the 'Number of copies...' string as the argument to PUT_LINE. (And, if there is space available, please add an asterisk on the word "result" and the following footnote: *The function returns a NUMBER, which runtime engine converts to a string to allow the concatenation to succeed.) (95) - figure should have arrows to all of the smaller boxes on the left; all six are public programs {100} - "add_book.sp" should be "add_book.pro" (101) - "reporteqnum" should be "reporteqbool" (109) - The section is "HTML Basics" (Chapter 4). The paragraph before it notes "The rule says that you must close the inner element before the outer one. Thus, the following example is logically incorrect: This illustrates the RIGHT way to nest elements " (122) - "show_time2" show be "show_time" (123) Bottom of "Creating a DAD" sidebar; "Oraacle9:" should be "Oracle9:" (127) - "add_book_form1" show be "eat_add_book_form" (128) - "eat_add_book_form1" in text should be "eat_add_book_form" (152) - "??" should be 200 (154) 3rd line of short story; "shot class" should be "shot glass" (156) - "??" should be 200 (156) - "bkcur" should be "bcur " (note space, this is for alignment) (160) - "??" should be 200 (160) - "bkcur" should be "bcur" (163) - "bkcur" should be "bcur" (THREE OCCURRENCES) {165} - change "bcur%ROWCOUNT" to "brec.title"; also delete entire line that reads: || ') ' || brec.title (180) final sentence (not in code example); Sentence starts with "Iit" where "It" was meant. {204} - delete entire line that says "/*file chgsince.sql*/" {213} - replace the missing single quote mark: "'_in" should be "'_in'" (255) - it would be better if the sidebar did not split up the code {297} - replace "shortURL" with "getBytes"