Oracle SQL*Plus: The Definitive Guide by Jonathan Gennick 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 November 10, 2005. 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: (41) 3rd line from top of page; The beginning of the sentence is "The:SIZE", should be "The SIZE" {36} 4th bulleted item; "Comments denoted by a leading dash (-)" should be "Comments denoted by two leading dashes (--)" {106} Example 4-25; first line of example contains an extra space: SELECT p.project_name, ph. employee_id, should read: SELECT p.project_name, ph.employee_id, [111] Figure 4-5; The SQL query in Figure 4-5 should read as follows: SELECT p.project_name, ph.employee_id, ph.time_log_date, ph.hours_logged FROM project p LEFT OUTER JOIN project_hours ph ON p.project_id = ph.project_id; The query in the book (in the first printing at least) is an inner join. The correct query (above) is an outer join. {134} Example at top of page; The last column should have the header "Dollars" above "Charged", however it only shows a heading of "Charged". {136} Example after 1st paragraph; The last line in the example has extra spaces in the string literal, i.e. RIGHT " Page " FORMAT 999 SQL.PNO whereas the incorporation of this code into the example (5-3) on the following page shows a slightly different BTITLE line with the extra spaces removed. RIGHT "Page " FORMAT 999 SQL.PNO [197-98] Example after 1st paragraph; Example 7-6 encompasses approximately 2.5 pages. Upon closer inspection, it is found to consist of 2 partial scripts, followed by the full script. 1st partial: starts on pg. 197 and continues up to and including the 1st two COMPUTES on pg. 198. 2nd partial: starts immeditely after 1st partial above, and continues to approximately 2/3rds of the page, right after the BTITLE command. full: starts immediately after 2nd partial above; it starts with a command propmt, and the command "cat ex7-6.sql", followed by the full script, on pgs. 198-199. (203) Example 7-7; Note from author: The UNION statement Example 7-7 contains four SELECT clauses. The first such clause specifies sort_column as a column alias using the original SQL syntax for that purpose (i.e. column name and then a space and then the alias). Subsequent SELECT clauses specify the same alias using the AS clause. Either method is correct syntax, and the statement will execute correctly. However, mixing the two syntaxes in one statement was an inadvertent lapse on my part. It's best to be consistent, at least within a single statement, and specify all aliases in the same manner. (225) sidebar at top of page; The 3rd sentence refers to "...either of the following commands...", but only one command is listed. the book should show both of: @@subdir/new_script @@subdir\new_script {246} example 9-1 at bottom of page; Comma is missing after the 2nd column (employee_billing_rate). {251} example 9-6, middle of page; Two lines below the line containing the only CASE in the example, is the following: || ', ''MM/DD/YYYY'')' || chr(10) The line should include 2 additional single quotes after the first single quote, as follows: || ''', ''MM/DD/YYYY'')' || chr(10) {259} example 9-10 at top of page + figure 9-2; The example is missing a comma after the 2nd column, employee_billing_rate. This is displayed in the figure by the fact that only 3 columns are shown, even though four were selected. With the comma missing, the 3rd column, "employee_hire_date" is taken as a column alias for the "employee_billing_rate" and is displayed in the figure as such, over the billing rate column. {321} paragraph above Example 11-16; ...and you'll get back GENNICK."mixed_case_table". should read: ...and you'll get back GENNICK."Mixed_Case_Table". (341) sidebar, 3rd/middle paragraph, 2nd to last sentence; A redundant "is" is included. "...an effect that is, ultimately, is invisible." should be: "...an effect that is, ultimately, invisible." (357) 2nd to last paragraph, A better version of the entire paragraph would be: The backticks (`) enclosing the sqlplus command in Example 11-38 cause all of SQL*Plus's standard output to be captured and placed into the tabcount shell variable. SET PAGESIZE 0 ensures that the only output to be captured is the table count. (429) the line starting with "logon ::="; The third pipe (between "administrative" and "/NOLOG") is oblique (like "administrative"), but should be normal (like the other pipes). it should read: logon ::= {typical | os_authenticated | administrative | /NOLOG} (438) first line of syntax definition for BREAK; BRE[AK] [ON element_actiON [ON element_action...]] should be: BRE[AK] [ON element_action [ON element_action...]] (478) last sentence in 1st paragraph; Note from author: In the first paragraph on page 478, the introduction to the example suggests that the first script execution is done with ECHO ON. That is incorrect. The first execution is with ECHO OFF; the second is with ECHO ON. You can see the command to turn ECHO ON in the code example itself. (507) last 2 sentences of TRIMSPOOL entry; The last paragraph in the TRIMSPOOL entry should be changed to: If you are spooling data to a file to load it into another database by way of SQL*Loader (or using Oracle's external table feature), you may want to leave TRIMSPOOL OFF. This is because SQL*Loader's default behavior is to throw an error when a shorter-than-expected record is encountered in the input file.