Errata

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
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 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 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