Oracle8 Design Tips

Errata for Oracle8 Design Tips

Submit your own errata for this product.


The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".

The following errata were submitted by our customers and approved as valid errors by the author or editor.

Color Key: Serious Technical Mistake Minor Technical Mistake Language or formatting error Typo Question Note Update



Version Location Description Submitted By Date Submitted Date Corrected
Printed
Page xii
changed the O'Reilly address to regular (not bold) type

Anonymous    Oct 01, 1997
Printed
Page xiii
changed "Rob Romano" to "Robert Romano"

Anonymous    Oct 01, 1997
Printed
Page xii
The following information was added to the preface

"How to Contact Us All of the information about Oracle8 is still very new. We'll be seeing bug fixes and new versions soon. Although we hope that our basic design advice will stand the test of time, you may find that some of the details must change for future releases of Oracle8. We also hope that some of the deficiencies we've pointed out may be fixed in future releases. We have tested and verified the information in this book to the best of our ability, but you may find that features have changed (or even that we have made mistakes!). Please let us know about any errors you find, as well as your suggestions for future editions, by writing to: O'Reilly & Associates, Inc. 101 Morris Street Sebastopol, CA 95472 1-800-998-9938 (in the U.S. or Canada) 1-707-829-0515 (international/local) 1-707-829-0104 (FAX) You can also send us messages electronically. To be put on the mailing list or request a catalog, send email to: info@oreilly.com To ask technical questions or comment on the book, send email to: bookquestions@oreilly.com We have a web site for the book, where we'll list examples, errata, and any plans for future editions. You can access this page at: http://www.oreilly.com/catalog/9781565923614/ For more information about this book and others, see the O'Reilly web site: http://www.oreilly.com See the insert at the back of the book for information about all of O'Reilly's online services."

Anonymous    Jan 01, 2000
Printed
Page 2
deleted the extra period from the sentence just before the figure

Anonymous    Oct 01, 1997
Printed
Page 7
second para: changed "index-only table" to "table of organization

index" and "Such tables are ideal for ..." to "Such tables appear attractive at first sight for ..."

Anonymous    Jan 01, 1998
Printed
Page 7
third para: changed "index-only tables" to "tables of organization index"

Anonymous    Jan 01, 1998
Printed
Page 7
last line: changed "abstract data types (or ADTs)" to

"user-defined data types (or UDTs)"

Anonymous    Jan 01, 1998
Printed
Page 8
first para - line 5: changed "ADT" to "UDT"

Anonymous    Jan 01, 1998
Printed
Page 8
first para - line 6: changed "abstract" to "user-defined"

Anonymous    Jan 01, 1998
Printed
Page 10
para under the heading The Type System

"User-defined types are known formally as abstract data types (ADTs). They can be used in ...." was changed to: "User-defined types (UDTs) can be used in ..."

Anonymous    Jan 01, 1998
Printed
Page 10
para under the heading The Type System in both line 7 and line 8

changed "ADTs" to "UDTs"

Anonymous    Jan 01, 1998
Printed
Page 10
code example at bottom of page, first line

... AS OBJECT { changed to: ... AS OBJECT (

Anonymous    Jan 01, 1998
Printed
Page 10
code example at bottom of page, lines 5 to 7

MEMBER FUNCTION area RETURN NUMBER); }; changed to: MEMBER FUNCTION area RETURN NUMBER ); /

Anonymous    Jan 01, 1998
Printed
Page 10
line -4

CREATE OR REPLACE TYPE BODY circle now reads: CREATE OR REPLACE TYPE BODY circle AS

Anonymous    Apr 01, 1999
Printed
Page 11
at end of page add new para

Perhaps more importantly, Oracle's Object Database Designer (ODD) creates both the object views and the C++ classes to allow the application programmer to manipulate the views directly without having to master Oracle8 OCI.

Anonymous    Jan 01, 1998
Printed
Page 21
chapter contents: changed "ENFORCE option" to "NOVALIDATE

option"

Anonymous    Jan 01, 1998
Printed
Page 22
first bullet point (middle of page), second line: changed

"trigger" to "view"

Anonymous    Jan 01, 1998
Printed
Page 23
para starting "The INSTEAD OF trigger carries no such ..."

"However, if the insert has resulted in a duplicate ..." changed to: "However, if the insert would have resulted in a duplicate ..."

Anonymous    Jan 01, 1998
Printed
Page 28
Para before heading 3GL callouts: added

We would also caution that the performance of these features should be rigorously verified under realistic load conditions before relying on them in a production system. Our limited personal experience of LOBs indicates that the performance is excellent, but we have heard reports of performance problems with Oracle/AQ.

Anonymous    Jan 01, 1998
Printed
Page 35
Heading "ENFORCE Option" changed to "NOVALIDATE option"

Anonymous    Jan 01, 1998
Printed
Page 35
Section on ENFORCE Option - para 3, first sentence

Oracle has an option ... rather than enable it. changed to: Oracle8 allows a constraint to be enabled even if there is dirty data in the table.

Anonymous    Jan 01, 1998
Printed
Page 35
Section on ENFORCE Option - code example

ALTER TABLE my_tab ENFORCE CONSTRAINT mt_ccl; changed to: ALTER TABLE my_tab ENABLE CONSTRAINT my_tab_xx NOVALIDATE;

Anonymous    Jan 01, 1998
Printed
Page 35
Section on ENFORCE Option - last para: after "... having to check

every row." added new sentence: Of course without performing the checks there is no way of knowing how much bad data is present, if any.

Anonymous    Jan 01, 1998
Printed
Page 53
last two sentences

"Of course for .... discussed in the next section" changed to: Of course for SELECT, UPDATE, and DELETE operations Oracle's query optimizer will do this for you. With predicate clause testing the partition key for equality, it will access only the correct partition; where there is a range scan, it will access only those partitions whose partition key can fall within the range. Clever stuff.

Anonymous    Jan 01, 1998
Printed
Page 55 and 56
deleted everything from "Well it only needs to scan that

one partition ..." to "... which are entirely within a single partition or a subset of partitions."

Anonymous    Jan 01, 1998
Printed
Page 56
TIP - line 2: changed "local prefixed" to "locally partitioned"

Anonymous    Jan 01, 1998
Printed
Page 56
TIP - line 3: remove the word "can"

Anonymous    Jan 01, 1998
Printed
Page 57
Figure 4-4: "Equi-partitioned index" changed to "Locally

partitioned index"

Anonymous    Jan 01, 1998
Printed
Page 57
Figure 4-4: in every case where a little grid was labelled

"Index", it is now labelled "Index Partition" (6 cases)

Anonymous    Jan 01, 1998
Printed
Page 57
Figure 4-4: EXCEPT FOR THE LOWER RIGHT, every case where a little

grid was labelled "Table", it is now labelled "Table Partition" (4 cases)

Anonymous    Jan 01, 1998
Printed
Page 58
Para under heading Unusable Index Partitions: Last sentence

"For this reason ... rather than globally, partitioned." changed to: "For this reason, wherever possible you should make your unique indexes locally partitioned and you should place the partition key at the leading edge of the unique key."

Anonymous    Jan 01, 1998
Printed
Page 58
Para under heading Locally Prefixed Partitions, line 1: changed

"need" to "have"

Anonymous    Jan 01, 1998
Printed
Page 60
Heading "Index-Only Tables" changed to "Tables of Organization

Index"

Anonymous    Jan 01, 1998
Printed
Page 61
second para

"... it also has to be both backed up and restored." changed to: "... it also has to be both stored and backed up."

Anonymous    Jan 01, 1998
Printed
Page 61
- third para

" ... new type of object called an index-only table." changed to: " ... new type of object originally called an index-only table."

Anonymous    Jan 01, 1998
Printed
Page 61
third para, line 5

" ... call it an index-only table." changed to: " ... call it a table of organization index."

Anonymous    Jan 01, 1998
Printed
Page 61
third para, line 8

" ... before you decide to use index-only tables ..." changed to: " ... before you decide to use these tables ..."

Anonymous    Jan 01, 1998
Printed
Page 65
bullet point starting "Constraints"

"Constraints cannot be defined on ... constraints." changed to: "Long columns cannot be referenced in any type of constraint."

Anonymous    Jan 01, 1998
Printed
Page 71
last line: "... as far as we can tell ..." changed to "... sadly

..."

Anonymous    Jan 01, 1998
Printed
Page 73
paragraph at top of page - first 6 lines

"Oracle had continually asked ... as much as 10 megabytes." changed to: "Oracle claims that the memory consumption of Oracle8 is 20 - 30% lower than Oracle7. However, under Oracle7 most applications were using at least 1.5 Mb of server memory per connected user, and many were using considerably more. The claimed reduction in memory usage, if realized in practice, might allow some applications to run with "only" 1 Mb and might reduce the overhead of the largest applications to 3 or 4 Mb."

Anonymous    Jan 01, 1998
Printed
Page 73
paragraph at top of page - last sentence: changed "Needing a

terabyte for the database is one thing ..." to "Needing 100Gb for the database is one thing ..."

Anonymous    Jan 01, 1998
Printed
Page 73
second para - line 3: changed "... requires connection sharing

..." to "... requires true connection sharing ..."

Anonymous    Jan 01, 1998
Printed
Page 76
TIP - first para - second sentence

"If necessary, you can specify each bitmap for a combination of values from 1 to 16 columns, ..." changed to: "If necessary, you can specify up to 16 columns for the key to a bitmap index, ..."

Anonymous    Jan 01, 1998
Printed
Page 76
TIP - second para. typeface fixed to match first para.

Anonymous    Jan 01, 1998
Printed
Page 77
WARNING - second para: fixed this typeface too

Anonymous    Jan 01, 1998
Printed
Page 77
para under the WARNING - last two sentences

"... lock conflicts are almost inevitable ... values updated in multi-user operation." changed to: "... lock conflicts are almost inevitable if bitmap indexes are used on tables where index updates are occurring in parallel. This means that bitmap indexes are unsuitable for use on any table subject to DML from within an online system."

Anonymous    Jan 01, 1998
Printed
Page 80
second para, code example, final para before APPEND heading

"In Oracle8, you can use ...as we describe in the next section." changed to: "In Oracle8, the NOLOGGING option may be applied to any of the following: SQL*Loader Direct Path CREATE TABLE ... AS SELECT ... CREATE INDEX ... ALTER TABLE ... MOVE PARTITION ALTER TABLE ... SPLIT PARTITION ALTER INDEX ... SPLIT PARTITION ALTER INDEX ... REBUILD ALTER INDEX ... REBUILD PARTITION The operation takes place as it normally would with the exception that neither redo log nor rollback entries are created (except for any space management operations which are required). This greatly speeds up the operation for large tables, but it essentially requires that a backup be taken immediately after the operation (or set of operations) has been completed. In addition, the NOLOGGING attribute may be set on any table to permit the use of the APPEND hint described in the next section."

Anonymous    Jan 01, 1998
Printed
Page 81
heading "Direct-Path Inserts" changed to "Direct-Load Insert"

Anonymous    Jan 01, 1998
Printed
Page 81
para under heading Direct-Path Inserts, line 1: changed

"direct-path INSERT" to "direct-load INSERT"

Anonymous    Jan 01, 1998
Printed
Page 84
sidebar A Question of Terminology, line 12

"... have been competing to provide (much as they ..." changed to: "... have been competing to provide, much as they ..."

Anonymous    Jan 01, 1998
Printed
Page 89
- second code example

"SELECT p.proj_name , roi.days_to_break_even(p.roi) FROM projects p WHERE roi.days_to_break_even(p.roi) < 360;" changed to: "SELECT p.proj_name , project_roi.days_to_break_even(p.roi) FROM projects p WHERE project_roi.days_to_break_even(p.roi) < 360;"

Anonymous    Jan 01, 1998
Printed
Page 95
- first para

"It may be that REFs will give faster navigation ... double or triple the overall size of the table." changed to: "You might expect that since a REF is essentially a pointer, it should have a performance advantage over a foreign key relationship when joining from a detail table to its master. In practice, we have found that navigating a REF takes exactly the same amount of time as navigating using a join based on a unique index. This is hardly surprising. The REF is actually supported internally via an index so that tables can be reorganized without the need to reset all the REFs to their rows. What is clear is that REFs, at 36 or 42 bytes, are larger in size than most foreign keys and that their use could easily double or even triple the overall row size of a simple detail table."

Anonymous    Jan 01, 1998
Printed
Page 95
para after heading Abstract Data Types (ADTs) - first sentence

" ... described through the data dictionary." changed to " ... described through the data dictionary. In Oracle8 these are called user-defined types (UDTs)."

Anonymous    Jan 01, 1998
Printed
Page 95
para after WARNING, line 2

" ... features of ADTs in general. ..." changed to " ... features of UDTs in general. ..."

Anonymous    Jan 01, 1998
Printed
Page 96
first para, line 5

" ... since one of Oracle's major projected uses ..." changed to " ... since one of the major projected uses ..."

Anonymous    Jan 01, 1998
Printed
Page 96
first code example, line 5

" , event_codeNUMBER NOT NULL REFERENCES event_codes" changed to " , event_code NUMBER NOT NULL REFERENCES event_codes"

Anonymous    Jan 01, 1998
Printed
Page 96
second code example

" ... dateonly(trunc(sysdate));" changed to " ... dateonly(trunc(sysdate)));"

Anonymous    Jan 01, 1998
Printed
Page 96
para under second code example, line 4

"... constructor function offers a natural ..." changed to: "... constructor function should have offered a natural ..."

Anonymous    Jan 01, 1998
Printed
Page 97
lines 1 and 2, and twice in Warning: changed "ADTs" to "UDTs"

Anonymous    Jan 01, 1998
Printed
Page 107
chapter contents: changed "Object Designer" to "Object Database

Designer (ODD)"

Anonymous    Jan 01, 1998
Printed
Page 110
same change as on p. 107

Anonymous    Jan 01, 1998
Printed
Page 110 - 111
under heading Object Designer: replaced entire section

with: To plug some of the gaps in Designer/2000, a new design tool called ODD was due for release before the end of 1997. Based on the existing Database Designer tool (also known as ODD), this new tool adds extensions specifically aimed at Oracle8 and object support. ODD lets the user model, design, and generate objects from a GUI front end, allowing designers to specify embedded structures such as nested tables and VARRAYs. It also allows linking of objects through REFs. For compatibility with other design tools, ODD uses the emerging UML standard to record its internal representation of the model. We expect that ODD will eventually allow for the specification and integration of NCA data cartridges. Most importantly ODD is already capable of generating C++ class definitions for objects, giving the programmer the ability to store and retrieve the objects without having to learn Oracle8 OCI. Another important feature of ODD is its ability to reverse- engineer definitions from existing database schemas (including Oracle7 schemas) and to create type models from them. This type model can then be used to create an object schema. We regard ODD as a potentially useful aid to bridging the gap between object-oriented programming techniques and the Oracle8 OCI interface, but from our examination of it we are concerned that it can only support the limited object repertoire provided by the Oracle8 Type System. ODD makes no concessions to inheritance or subclasses."

Anonymous    Jan 01, 1998
Printed
Page 112
first para, last line

"... for managing the user interface." changed to "... for managing the user interface, other than a simple package to generate HTML which is included with Oracle's WebServer product."

Anonymous    Jan 01, 1998
Printed
Page 112
under heading C, C++ and OCI, second para, line 1

"... from Object Designer may ..." changed to: "... from Object Database Designer will ..."

Anonymous    Jan 01, 1998
Printed
Page 114
second para, line 6

"(Great word, soon.." changed to: "Great word, soon."

Anonymous    Jan 01, 1998
Printed
Page 114
last line on page: spelled "scalable" correctly

Anonymous    Jan 01, 1998