Index
A B C D E F G H I J L M N O P Q R S T U V W Z
Symbols
- %BULK_EXCEPTIONS cursor attribute, 5-44
- %BULK_ROWCOUNT cursor attribute, 5-43
- %FOUND cursor attribute, 6-35, 6-39
- %ISOPEN cursor attribute, 6-35, 6-39
- %NOTFOUND cursor attribute, 6-35
- %ROWCOUNT cursor attribute, 6-36, 6-39
- + addition/identity operator, 2-3
- := assignment operator, 1-4, 2-4
- => association operator, 2-4, 8-13
- % attribute indicator, 1-7, 2-3
- ' character string delimiter, 2-3
- . component selector, 1-6, 2-3
- || concatenation operator, 2-4, 2-28
- / division operator, 2-3
- ** exponentiation operator, 2-4
- ( expression or list delimiter, 2-3
- ) expression or list delimiter, 2-3
- : host variable indicator, 2-3
- . item separator, 2-3
- << label delimiter, 2-4
- >> label delimiter, 2-4
- /* multi-line comment delimiter, 2-4
- */ multi-line comment delimiter, 2-4
- * multiplication operator, 2-3
- " quoted identifier delimiter, 2-3
- .. range operator, 2-4, 4-13
- = relational operator, 2-3, 2-27
- < relational operator, 2-3, 2-27
- > relational operator, 2-3, 2-27
- <> relational operator, 2-4, 2-27
- != relational operator, 2-4, 2-27
- ~= relational operator, 2-4, 2-27
- ^= relational operator, 2-4
- <= relational operator, 2-4, 2-27
- >= relational operator, 2-4, 2-27
- @ remote access indicator, 2-3, 2-17
- -- single-line comment delimiter, 2-4
- ; statement terminator, 2-3, 13-17
- - subtraction/negation operator, 2-3
A
- abstraction, 8-3, 10-2
- ACCESS_INTO_NULL exception, 7-5
- actual parameters, 6-8
- address, 6-16
- aggregate assignment, 2-15
- aggregate functions
- AVG, 6-2
- COUNT, 6-2
- GROUPING, 6-2
- MAX, 6-2
- MIN, 6-2
- STDDEV, 6-2
- SUM, 6-2
- treatment of nulls, 6-2
- VARIANCE, 6-2
- AL16UTF16 character encoding, 3-11
- aliasing, 8-21
- ALL row operator, 6-3, 6-5
- ALTER TYPE statement
- for type evolution, 10-12
- anonymous PL/SQL block, 8-2
- ANY comparison operator, 6-5
- apostrophes, 2-9
- assignment operator, 1-4
- assignment statement
- syntax, 13-4
- assignments
- aggregate, 2-15
- character string, B-2
- collection, 5-15
- cursor variable, 6-31
- field, 5-56
- record, 5-56
- semantics, B-2
- association operator, 8-13
- associative arrays, 5-4
- syntax, 13-29
- versus nested tables, 5-6
- asterisk (*) row operator, 6-3
- asynchronous operations, 9-16
- atomically null, 10-25
- attribute indicator, 1-7
- attributes, 1-7
- %ROWTYPE, 2-14
- %TYPE, 2-13
- cursor, 6-34
- object, 10-3, 10-7
- AUTHID clause, 8-4, 8-6, 8-52
- autonomous transactions, 6-53
- advantages, 6-53
- controlling, 6-57
- autonomous triggers, 6-59
- AUTONOMOUS_TRANSACTION pragma, 6-54
- syntax, 13-8
- AVG aggregate function, 6-2
B
- base types, 3-3, 3-21
- basic loops, 4-9
- BETWEEN comparison operator, 2-27, 6-5
- BFILE datatype, 3-14
- binary operators, 2-23
- BINARY_INTEGER datatype, 3-3
- bind argument, 11-3
- binding, 5-38
- blank-padding semantics, B-3
- BLOB datatype, 3-14
- blocks
- anonymous, 8-2
- label, 2-21
- PL/SQL, 13-11
- structure, 1-2
- body
- cursor, 6-12
- function, 8-7
- method, 10-8
- object, 10-5
- package, 9-8
- procedure, 8-4
- BOOLEAN datatype, 3-15
- Boolean expressions, 2-28
- Boolean literals, 2-9
- built-in functions, 2-35
- bulk binds, 5-37
- BULK COLLECT clause, 5-46
- bulk fetches, 5-47
- bulk returns, 5-49
- %BULK_EXCEPTIONS cursor attribute, 5-44
- %BULK_ROWCOUNT cursor attribute, 5-43
- by-reference parameter passing, 8-21
- by-value parameter passing, 8-21
C
- call specification, 9-3
- calls
- inter-language, 8-65
- subprogram, 8-13
- carriage returns, 2-2
- CASE expressions, 2-31
- case sensitivity
- identifier, 2-5
- string literal, 2-9
- CASE statement, 4-5
- syntax, 13-19
- CASE_NOT_FOUND exception, 7-5
- CHAR
- datatype, 3-5
- maximum width of column, 3-5
- semantics, B-1
- character literals, 2-8
- character sets, 2-2
- CHARACTER subtype, 3-6
- character values
- assigning, B-2
- comparing, B-2
- inserting, B-4
- selecting, B-4
- clauses
- AUTHID, 8-4, 8-6, 8-52
- BULK COLLECT, 5-46
- LIMIT, 5-48
- client programs, 10-2
- CLOB datatype, 3-14
- CLOSE statement, 6-10, 6-24
- syntax, 13-22
- collating sequence, 2-29
- collection exceptions
- when raised, 5-36
- collection methods
- applying to parameters, 5-35
- COUNT, 5-29
- DELETE, 5-34, 13-25
- EXISTS, 5-29
- EXTEND, 5-32
- FIRST, 5-30
- LAST, 5-30
- LIMIT, 5-30
- NEXT, 5-31
- PRIOR, 5-31
- syntax, 13-24
- TRIM, 5-33
- COLLECTION_IS_NULL exception, 7-5
- collections, 5-2
- assigning, 5-15
- bulk binding, 5-37
- bulk-binding of, 5-64
- comparing, 5-17
- constructors, 5-12
- declaring, 5-10
- defining, 5-7
- element types, 5-7
- initializing, 5-12
- kinds, 5-1
- multilevel, 5-26
- referencing, 5-14
- scope, 5-7
- syntax, 13-29
- column alias, 6-15
- when needed, 2-16
- COMMENT clause, 6-45
- comments, 2-10
- restrictions, 2-11
- syntax, 13-36
- COMMIT statement, 6-44
- syntax, 13-37
- comparison operators, 2-26, 6-5
- comparisons
- of character values, B-2
- of collections, 5-17
- of expressions, 2-28
- compiler hint, NOCOPY, 8-17
- compiling PL/SQL procedures for native execution, 12-14
- component selector, 1-6
- composite types, 3-2
- compound symbols, 2-4
- concatenation operator, 2-28
- treatment of nulls, 2-34
- concurrency, 6-43
- conditional control, 4-2
- constants
- declaring, 2-12
- syntax, 13-39
- constraints
- NOT NULL, 2-13
- where not allowed, 8-4
- constructors
- collection, 5-12
- defining, 10-28
- object, 10-12
- context
- switching, 5-38
- transaction, 6-56
- control structures, 4-2
- conditional, 4-2
- iterative, 4-9
- sequential, 4-17
- conventions
- naming, 2-17
- conversion
- functions, 3-25
- conversion, datatype, 3-24
- correlated subquery, 6-11
- COUNT aggregate function, 6-2
- COUNT collection method, 5-29
- CURRENT OF clause, 6-50
- current row, 1-5
- CURRVAL pseudocolumn, 6-3
- cursor attributes
- %BULK_EXCEPTIONS, 5-44
- %BULK_ROWCOUNT, 5-43
- %FOUND, 6-35, 6-39
- %ISOPEN, 6-35, 6-39
- %NOTFOUND, 6-35
- %ROWCOUNT, 6-36, 6-39
- implicit, 6-38
- syntax, 13-43
- values, 6-36
- cursor expressions, 6-41
- cursor FOR loops, 6-13
- passing parameters to, 6-15
- cursor subqueries, 6-41
- cursor variables, 6-16
- as parameters to table functions, 8-39
- assignment, 6-31
- closing, 6-24
- declaring, 6-18
- fetching from, 6-23
- opening, 6-19
- restrictions, 6-33
- syntax, 13-48
- using to reduce network traffic, 6-30
- using with dynamic SQL, 11-7
- CURSOR_ALREADY_OPEN exception, 7-5
- cursors, 1-5, 6-6
- analogy, 1-5
- closing, 6-10
- declaring, 6-6
- explicit, 6-6
- fetching from, 6-8
- implicit, 6-11
- opening, 6-7
- packaged, 6-12
- parameterized, 6-8
- RETURN clause, 6-12
- scope rules, 6-7
- syntax, 13-54
D
- dangling refs, 10-36
- data
- abstraction, 10-2
- encapsulation, 1-16
- integrity, 6-43
- locks, 6-43
- data streaming
- definition, 8-47
- database changes
- making permanent, 6-44
- undoing, 6-45
- database character set, 3-11
- database triggers, 1-19
- autonomous, 6-59
- datatypes, 3-1
- BFILE, 3-14
- BINARY_INTEGER, 3-3
- BLOB, 3-14
- BOOLEAN, 3-15
- CHAR, 3-5
- CLOB, 3-14
- constrained, 8-4
- DATE, 3-16
- families, 3-2
- implicit conversion, 3-24
- INTERVAL DAY TO SECOND, 3-20
- INTERVAL YEAR TO MONTH, 3-19
- LONG, 3-6
- LONG RAW, 3-6
- national character, 3-10
- NCHAR, 3-11
- NCLOB, 3-15
- NUMBER, 3-3
- NVARCHAR2, 3-12
- PLS_INTEGER, 3-5
- RAW, 3-7
- RECORD, 5-51
- REF CURSOR, 6-16
- ROWID, 3-7
- scalar versus composite, 3-1
- TABLE, 5-2
- TIMESTAMP, 3-17
- TIMESTAMP WITH LOCAL TIME ZONE, 3-18
- TIMESTAMP WITH TIME ZONE, 3-17
- UROWID, 3-7
- VARCHAR2, 3-9
- VARRAY, 5-3
- DATE datatype, 3-16
- dates
- converting, 3-26
- TO_CHAR default format, 3-26
- datetime literals, 2-9
- DBMS_ALERT package, 9-16
- DBMS_OUTPUT package, 9-16
- DBMS_PIPE package, 9-17
- deadlocks, 6-43
- effect on transactions, 6-46
- how broken, 6-46
- DEC subtype, 3-4
- DECIMAL subtype, 3-4
- declarations
- collection, 5-10
- constant, 2-12
- cursor, 6-6
- cursor variable, 6-18
- exception, 7-7
- forward, 8-10
- object, 10-25
- record, 5-53
- subprogram, 8-10
- variable, 2-11
- declarative part
- of function, 8-7
- of PL/SQL block, 1-3
- of procedure, 8-4
- DECODE function
- treatment of nulls, 2-34
- DEFAULT keyword, 2-12
- default parameter values, 8-19
- define variable, 11-3
- definer rights, 8-49
- versus invoker rights, 8-49
- DELETE collection method, 5-34, 13-25
- DELETE statement
- RETURNING clause, 12-12
- syntax, 13-58
- delimiters, 2-3
- dense collections, 5-3
- DEPT database table, xxviii
- DEREF function, 10-36
- dereference, 10-36
- DETERMINISTIC hint, 8-6
- digits of precision, 3-4
- DISTINCT operator, 6-3
- DISTINCT row operator, 6-3, 6-6
- distributed transactions, 6-44
- dot notation, 1-6, 1-7
- for collection methods, 5-28
- for global variables, 4-16
- for object attributes, 10-27
- for object methods, 10-30
- for package contents, 9-7
- for record fields, 2-15
- DOUBLE PRECISION subtype, 3-4
- DUP_VAL_ON_INDEX exception, 7-5
- dynamic FOR-loop range, 4-15
- dynamic SQL, 11-2
- tips and traps, 11-14
- using EXECUTE IMMEDIATE statement, 11-3
- using OPEN-FOR-USING statement, 11-7
- dynamic string, 11-3
E
- elaboration, 2-12
- element types, collection, 5-7
- ELSE clause, 4-3
- ELSIF clause, 4-4
- EMP database table, xxviii
- encapsulation, data, 1-16
- END IF reserved words, 4-3
- END LOOP reserved words, 4-11
- entended rowids, 3-8
- error messages
- maximum length, 7-18
- evaluation, 2-23
- short-circuit, 2-26
- EXAMPBLD script, A-3
- EXAMPLOD script, A-3
- exception handlers, 7-15
- branching from, 7-17
- OTHERS handler, 7-2
- using RAISE statement in, 7-15
- using SQLCODE function in, 7-18
- using SQLERRM function in, 7-18
- EXCEPTION_INIT pragma, 7-8
- syntax, 13-62
- using with raise_application_error, 7-9
- exception-handling part
- of function, 8-7
- of PL/SQL block, 1-3
- of procedure, 8-4
- exceptions, 7-2
- declaring, 7-7
- predefined, 7-4
- propagation, 7-11
- raised in declaration, 7-16
- raised in handler, 7-17
- raising with RAISE statement, 7-11
- reraising, 7-14
- scope rules, 7-7
- syntax, 13-64
- user-defined, 7-7
- WHEN clause, 7-15
- executable part
- of function, 8-7
- of PL/SQL block, 1-3
- of procedure, 8-4
- EXECUTE IMMEDIATE statement, 11-3
- EXECUTE privilege, 8-55
- execution environments, 1-17
- EXISTS collection method, 5-29
- EXISTS comparison operator, 6-5
- EXIT statement, 4-9, 4-16
- syntax, 13-71
- WHEN clause, 4-10
- where allowed, 4-9
- explicit cursors, 6-6
- expressions
- Boolean, 2-28
- CASE, 2-31
- how evaluated, 2-23
- parentheses in, 2-24
- syntax, 13-73
- EXTEND collection method, 5-32
- extensibility, 8-3
- external references, 8-52
- how resolved, 8-53
- external routines, 8-65
F
- FALSE value, 2-9
- features, new, xxxi
- FETCH statement, 6-8, 6-23
- syntax, 13-83
- fetching
- across commits, 6-51
- bulk, 5-47
- Fibonacci sequence, 8-60
- fields, 5-51
- file I/O, 9-17
- FIRST collection method, 5-30
- flag, PLSQL_V2_COMPATIBILITY, 6-62
- FLOAT subtype, 3-4
- FOR loops, 4-13
- cursor, 6-13
- dynamic range, 4-15
- iteration scheme, 4-13
- loop counter, 4-13
- nested, 4-16
- FOR UPDATE clause, 6-7
- restriction on, 6-20
- when to use, 6-50
- FORALL statement, 5-41
- syntax, 13-88
- using with BULK COLLECT clause, 5-50
- formal parameters, 6-8
- format
- masks, 3-26
- of functions, 8-6
- of packaged subprograms, 8-11
- of procedures, 8-3
- forward declarations, 8-10
- when needed, 8-10, 8-63
- forward references, 2-17
- forward type definitions, 10-33
- %FOUND cursor attribute, 6-35, 6-39
- functions, 8-1, 8-6
- body, 8-7
- built-in, 2-35
- call, 8-8
- parameter, 8-6
- parts, 8-7
- RETURN clause, 8-7
- specification, 8-7
- syntax, 13-92
G
- gigabyte, 3-14
- GOTO statement, 4-17
- label, 4-17
- misuse, 4-19
- restriction, 7-17
- syntax, 13-99
- GROUP BY clause, 6-3
- GROUPING aggregate function, 6-2
- guess, 3-9
H
- handlers, exception, 7-2
- handling exceptions, 7-1
- raised in declaration, 7-16
- raised in handler, 7-17
- using OTHERS handler, 7-15
- handling of nulls, 2-33
- hash tables
- simulating with associative arrays, 5-6
- hidden declarations, 9-3
- hint, DETERMINISTIC, 8-6
- hint, NOCOPY, 8-17
- host arrays
- bulk binds, 5-50
- hypertext markup language (HTML), 9-18
- hypertext transfer protocol (HTTP), 9-18
I
- identifiers
- forming, 2-5
- maximum length, 2-5
- quoted, 2-6
- scope rules, 2-19
- IF statement, 4-2
- ELSE clause, 4-3
- ELSIF clause, 4-4
- syntax, 13-101
- THEN clause, 4-3
- implicit cursors, 6-11
- attributes, 6-38
- implicit datatype conversion, 3-24
- effect on performance, 12-3
- implicit declarations
- cursor FOR loop record, 6-13
- FOR loop counter, 4-15
- IN comparison operator, 2-28, 6-5
- IN OUT parameter mode, 8-16
- IN parameter mode, 8-14
- incomplete object types, 10-33
- index-by tables
- See Also associative arrays
- infinite loops, 4-9
- information hiding, 1-16, 9-5
- inheritance
- and overloading, 8-28
- in PL/SQL, 10-14
- initialization
- collection, 5-12
- object, 10-25
- package, 9-8
- record, 5-53
- using DEFAULT, 2-12
- variable, 2-22
- when required, 2-13
- INSERT statement
- RETURNING clause, 12-12
- syntax, 13-104
- with a record variable, 5-61
- instances, 10-4
- INT subtype, 3-4
- INTEGER subtype, 3-4
- inter-language calls, 8-65
- INTERSECT set operator, 6-6
- INTERVAL DAY TO SECOND datatype, 3-20
- INTERVAL YEAR TO MONTH datatype, 3-19
- INTO clause, 6-23
- INTO list, 6-9
- INVALID_CURSOR exception, 7-5
- INVALID_NUMBER exception, 7-5
- invoker rights, 8-50
- advantages, 8-50
- versus definer rights, 8-49
- IS DANGLING predicate, 10-36
- IS NULL comparison operator, 2-27, 6-5
- IS OF predicate, 10-14
- %ISOPEN cursor attribute, 6-35, 6-39
- iteration
- scheme, 4-13
- versus recursion, 8-64
- iterative control, 4-9
J
- joins, 8-62
L
- labels
- block, 2-21
- GOTO statement, 4-17
- loop, 4-11
- large object (LOB) datatypes, 3-13
- LAST collection method, 5-30
- LEVEL pseudocolumn, 6-4
- lexical units, 2-2
- LIKE comparison operator, 2-27, 6-5
- LIMIT clause, 5-48
- LIMIT collection method, 5-30
- limitations, PL/SQL, E-1
- literals, 2-7
- Boolean, 2-9
- character, 2-8
- datetime, 2-9
- numeric, 2-7
- string, 2-9
- syntax, 13-107
- LOB (large object) datatypes, 3-13
- lob locators, 3-13
- local subprograms, 1-19
- locator variables, 7-22
- LOCK TABLE statement, 6-51
- syntax, 13-110
- locks, 6-43
- modes, 6-43
- overriding, 6-49
- using FOR UPDATE clause, 6-50
- logical rowids, 3-7
- LOGIN_DENIED exception, 7-5
- LONG datatype, 3-6
- maximum length, 3-6
- restrictions, 3-7
- LONG RAW datatype, 3-6
- converting, 3-27
- maximum length, 3-6
- LOOP statement, 4-9
- forms, 4-9
- syntax, 13-112
- loops
- counters, 4-13
- kinds, 4-9
- labels, 4-11
M
- maintainability, 8-3
- makefile
- for native compilation of PL/SQL procedures, 12-14
- map methods, 10-10
- MAX aggregate function, 6-2
- maximum precision, 3-4
- maximum size
- CHAR value, 3-5
- identifier, 2-5
- LOB, 3-13
- LONG RAW value, 3-6
- LONG value, 3-6
- NCHAR value, 3-12
- NVARCHAR2 value, 3-12
- Oracle error message, 7-18
- RAW value, 3-7
- VARCHAR2 value, 3-9
- membership test, 2-28
- MERGE statement
- syntax, 13-119
- method calls, chaining, 10-30
- methods
- collection, 5-28
- COUNT, 5-29
- DELETE, 5-34, 13-25
- EXISTS, 5-29
- EXTEND, 5-32
- FIRST, 5-30
- LAST, 5-30
- LIMIT, 5-30
- map, 10-10
- NEXT, 5-31
- object, 10-3, 10-7
- order, 10-10
- PRIOR, 5-31
- TRIM, 5-33
- MIN aggregate function, 6-2
- MINUS set operator, 6-6
- mixed notation, 8-13
- modes, parameter
- IN, 8-14
- IN OUT, 8-16
- OUT, 8-14
- modularity, 1-12, 8-3, 9-5
- multilevel collections, 5-26
- multi-line comments, 2-10
- mutual recursion, 8-63
N
- name resolution, 2-18, D-1
- named notation, 8-13
- names
- cursor, 6-7
- qualified, 2-17
- savepoint, 6-47
- variable, 2-18
- naming conventions, 2-17
- national character datatypes, 3-10
- national character set, 3-11
- National Language Support (NLS), 3-11
- native dynamic SQL. See dynamic SQL
- native execution
- compiling PL/SQL procedures for, 12-14
- NATURAL subtype, 3-3
- NATURALN subtype, 3-3
- NCHAR datatype, 3-11
- NCLOB datatype, 3-15
- nested collections, 5-26
- nested cursors, 6-41
- nested tables
- manipulating, 5-18
- syntax, 13-29
- versus associative arrays, 5-6
- nesting
- block, 1-3
- FOR loop, 4-16
- object, 10-7
- record, 5-52
- network traffic
- reducing, 1-22
- new features, xxxi
- NEXT collection method, 5-31
- NEXTVAL pseudocolumn, 6-3
- nibble, 3-27
- NLS (National Language Support), 3-11
- NO_DATA_FOUND exception, 7-5
- NOCOPY compiler hint, 8-17
- restrictions on, 8-19
- non-blank-padding semantics, B-3
- NOT logical operator
- treatment of nulls, 2-33
- NOT NULL constraint
- effect on %TYPE declaration, 2-14
- effect on performance, 12-4
- restriction, 6-7, 8-4
- using in collection declaration, 5-11
- using in field declaration, 5-54
- using in variable declaration, 2-13
- NOT_LOGGED_ON exception, 7-5
- notation
- mixed, 8-13
- positional versus named, 8-13
- %NOTFOUND cursor attribute, 6-35
- NOWAIT parameter, 6-50
- NVARCHAR2 datatype, 3-12
- NVL function
- treatment of nulls, 2-35
- null handling, 2-33
- in dynamic SQL, 11-16
- NULL statement, 4-21
- syntax, 13-119, 13-121
- using in a procedure, 8-4
- nullity, 2-27
- NUMBER datatype, 3-3
- numeric literals, 2-7
- NUMERIC subtype, 3-4
O
- object attributes, 10-3, 10-7
- accessing, 10-27
- allowed datatypes, 10-7
- maximum number, 10-7
- object constructors
- calling, 10-29
- passing parameters to, 10-29
- object methods, 10-3, 10-7
- calling, 10-30
- object tables, 10-34
- object types, 10-1, 10-3
- advantages, 10-5
- defining, 10-13
- examples, 10-13
- structure, 10-5
- syntax, 13-122
- object-oriented programming, 10-1
- objects, 10-4
- declaring, 10-25
- initializing, 10-25
- manipulating, 10-33
- sharing, 10-31
- OPEN statement, 6-7
- syntax, 13-131
- OPEN-FOR statement, 6-19
- syntax, 13-133
- OPEN-FOR-USING statement, 11-7
- syntax, 13-136
- operators
- comparison, 2-26
- precedence, 2-24
- relational, 2-27
- option, PARALLEL_ENABLE, 8-6
- OR keyword, 7-16
- order methods, 10-10
- order of evaluation, 2-24, 2-25
- OTHERS exception handler, 7-2, 7-15
- OUT parameter mode, 8-14
- overloading, 8-23
- and inheritance, 8-28
- object method, 10-10
- packaged subprogram, 9-15
- restrictions, 8-24
- using subtypes, 8-25
- overriding methods, 10-14
P
- packaged cursors, 6-12
- packaged subprograms, 1-19, 8-11
- calling, 9-7
- overloading, 9-15
- packages, 9-1, 9-2
- advantages, 9-5
- bodiless, 9-6
- body, 9-2
- initializing, 9-8
- private versus public objects, 9-14
- product-specific, 9-16
- referencing, 9-7
- scope, 9-6
- serially reusable, 12-6
- specification, 9-2
- syntax, 13-139
- parallel execution of table functions, 8-43
- PARALLEL_ENABLE option, 8-6
- parameter aliasing, 8-21
- parameter passing
- by reference, 8-21
- by value, 8-21
- in dynamic SQL, 11-6
- parameters
- actual versus formal, 8-12
- cursor, 6-8
- default values, 8-19
- modes, 8-14
- SELF, 10-8
- parentheses, 2-24
- PARTITION BY clause
- of CREATE FUNCTION statement, 8-44
- partitioned data
- and table functions, 8-43
- pattern matching, 2-27
- performance, 1-21
- physical rowids, 3-7
- pipe, 9-17
- PIPE ROW statement
- for returning rows incrementally, 8-36
- pipelining
- definition, 8-30
- placeholders, 11-2
- duplicate, 11-15
- PLS_INTEGER datatype, 3-5
- PL/SQL
- advantages, 1-20
- architecture, 1-17
- block structure, 1-2
- blocks
- anonymous, 1-2
- syntax, 13-11
- compiler
- how calls are resolved, 8-26
- engine
- in Oracle server, 1-18
- in Oracle tools, 1-20
- execution environments, 1-17
- limitations, E-1
- performance, 1-21
- portability, 1-23
- procedural aspects, 1-2
- reserved words, F-1
- sample programs, A-1
- Server Pages (PSPs), 8-66
- support for SQL, 1-20
- syntax, 13-1
- PL/SQL blocks
- anonymous, 8-2
- PLSQL_COMPILER_FLAGS initialization parameter, 12-15
- PLSQL_NATIVE_LIBRARY_DIR initialization parameter, 12-15
- PLSQL_NATIVE_LIBRARY_SUBDIR_COUNT initialization parameter, 12-15
- PLSQL_NATIVE_MAKE_FILE_NAME initialization parameter, 12-15
- PLSQL_NATIVE_MAKE_UTILITY initialization parameter, 12-15
- PLSQL_V2_COMPATIBILITY flag, 6-62
- pointers, 6-16
- portability, 1-23
- positional notation, 8-13
- POSITIVE subtype, 3-3
- POSITIVEN subtype, 3-3
- pragmas, 7-8
- AUTONOMOUS_TRANSACTION, 6-54
- EXCEPTION_INIT, 7-8
- RESTRICT_REFERENCES, 6-61, 8-9, 11-18
- SERIALLY_REUSABLE, 12-6
- precedence, operator, 2-24
- precision of digits
- specifying, 3-4
- predefined exceptions
- list of, 7-4
- raising explicitly, 7-11
- redeclaring, 7-10
- predicates, 6-5
- PRIOR collection method, 5-31
- PRIOR row operator, 6-4, 6-6
- private objects, 9-14
- procedural abstraction, 10-2
- procedures, 8-1, 8-3
- body, 8-4
- calling, 8-5
- parameter, 8-3
- parts, 8-4
- specification, 8-4
- syntax, 13-145
- productivity, 1-22
- program units, 1-12
- PROGRAM_ERROR exception, 7-6
- propagation, exception, 7-11
- pseudocolumns, 6-3
- CURRVAL, 6-3
- LEVEL, 6-4
- NEXTVAL, 6-3
- ROWID, 6-4
- ROWNUM, 6-4
- public objects, 9-14
- purity rules, 8-9
Q
- qualifiers
- using subprogram names as, 2-19
- when needed, 2-17, 2-21
- query work areas, 6-16
- quoted identifiers, 2-6
R
- RAISE statement, 7-11
- syntax, 13-150
- using in exception handler, 7-15
- raise_application_error procedure, 7-9
- raising an exception, 7-10
- range operator, 4-13
- RAW datatype, 3-7
- converting, 3-27
- maximum length, 3-7
- read consistency, 6-44
- READ ONLY parameter, 6-49
- readability, 2-2, 4-21
- read-only transaction, 6-48
- REAL subtype, 3-4
- RECORD datatype, 5-51
- records, 5-51
- %ROWTYPE, 6-13
- assigning, 5-56
- bulk-binding collections of, 5-64
- comparing, 5-58
- declaring, 5-53
- defining, 5-51
- implicit declaration, 6-13
- initializing, 5-53
- inserting, 5-61
- manipulating, 5-58
- nesting, 5-52
- referencing, 5-54
- restrictions on inserts/updates of, 5-64
- returning into, 5-63
- syntax, 13-152
- updating, 5-61
- recursion, 8-60
- infinite, 8-60
- mutual, 8-63
- terminating condition, 8-60
- versus iteration, 8-64
- REF CURSOR datatype, 6-16
- defining, 6-17
- REF CURSOR variables
- as parameters to table functions, 8-39
- predefined SYS_REFCURSOR type, 8-39
- REF function, 10-35
- REF type modifier, 10-31
- reference datatypes, 3-2
- references, external, 8-52
- refs, 10-31
- dangling, 10-36
- declaring, 10-31
- dereferencing, 10-36
- relational operators, 2-27
- remote access indicator, 2-17
- REPEAT UNTIL structure
- mimicking, 4-12
- REPLACE function
- treatment of nulls, 2-35
- reraising an exception, 7-14
- reserved words, F-1
- misuse of, 2-6
- using as quoted identifier, 2-7
- resolution, name, 2-18, D-1
- RESTRICT_REFERENCES pragma, 8-9
- syntax, 13-156
- using with autonomous functions, 6-61
- using with dynamic SQL, 11-18
- restricted rowids, 3-8
- result set, 1-5, 6-7
- RETURN clause
- cursor, 6-12
- function, 8-7
- RETURN statement, 8-8
- syntax, 13-159
- return type, 6-17, 8-25
- return value, function, 8-7
- RETURNING clause, 10-39, 12-12
- with a record variable, 5-63
- reusability, 8-3
- reusable packages, 12-6
- REVERSE reserved word, 4-13
- rollback segments, 6-44
- ROLLBACK statement, 6-45
- effect on savepoints, 6-47
- syntax, 13-161
- rollbacks
- implicit, 6-47
- of FORALL statement, 5-42
- statement-level, 6-46
- routines, external, 8-65
- row locks, 6-50
- row operators, 6-6
- %ROWCOUNT cursor attribute, 6-36, 6-39
- ROWID datatype, 3-7
- ROWID pseudocolumn, 6-4
- rowids, 3-7
- extended, 3-8
- guess, 3-9
- logical, 3-7
- physical, 3-7
- restricted, 3-8
- universal, 3-7
- ROWIDTOCHAR function, 6-4
- ROWNUM pseudocolumn, 6-4
- %ROWTYPE attribute, 2-14
- syntax, 13-163
- ROWTYPE_MISMATCH exception, 7-6
- RPC (remote procedure call), 7-12
- RTRIM function
- using to insert data, B-4
- rules, purity, 8-9
- run-time errors, 7-1
S
- sample database tables
- DEPT table, xxviii
- EMP table, xxviii
- sample programs, A-1
- savepoint names
- reusing, 6-47
- SAVEPOINT statement, 6-46
- syntax, 13-165
- scalar datatypes, 3-2
- scale
- specifying, 3-4
- schemes, iteration, 4-13
- scientific notation, 2-8
- scope, 2-19
- collection, 5-7
- cursor, 6-7
- cursor parameter, 6-7
- definition, 2-19
- exception, 7-7
- identifier, 2-19
- loop counter, 4-15
- package, 9-6
- searched CASE expression, 2-32
- SELECT INTO statement
- syntax, 13-166
- selector, 2-31
- SELF parameter, 10-8
- semantics
- assignment, B-2
- blank-padding, B-3
- CHAR versus VARCHAR2, B-1
- non-blank-padding, B-3
- string comparison, B-2
- separators, 2-3
- sequence, 6-3
- sequential control, 4-17
- serially reusable packages, 12-6
- SERIALLY_REUSABLE pragma, 12-6
- syntax, 13-171
- Server Pages, PL/SQL, 8-66
- session, 6-43
- session-specific variables, 9-11
- set operators, 6-6
- SET TRANSACTION statement, 6-48
- syntax, 13-173
- short-circuit evaluation, 2-26
- side effects, 8-14
- controlling, 8-9
- significant characters, 2-5
- SIGNTYPE subtype, 3-3
- simple symbols, 2-3
- single-line comments, 2-10
- size limit, varray, 5-8
- SMALLINT subtype, 3-4
- snapshots, 6-44
- SOME comparison operator, 6-5
- spaces
- where allowed, 2-2
- spaghetti code, 4-17
- sparse collections, 5-3
- specification
- call, 9-3
- cursor, 6-12
- function, 8-7
- method, 10-8
- object, 10-5
- package, 9-6
- procedure, 8-4
- SQL
- comparison operators, 6-5
- data manipulation statements, 6-2
- dynamic, 11-2
- pseudocolumns, 6-3
- row operators, 6-6
- set operators, 6-6
- support in PL/SQL, 1-20
- SQL cursor
- syntax, 13-175
- SQLCODE function, 7-18
- syntax, 13-178
- SQLERRM function, 7-18
- syntax, 13-180
- stack, 10-16
- standalone subprograms, 1-19
- START WITH clause, 6-4
- statement terminator, 13-17
- statement-level rollbacks, 6-46
- statements, PL/SQL
- assignment, 13-4
- CASE, 13-19
- CLOSE, 6-10, 6-24, 13-22
- COMMIT, 13-37
- DELETE, 13-58
- dynamic SQL, 11-2
- EXECUTE IMMEDIATE, 11-3
- EXIT, 13-71
- FETCH, 6-8, 6-23, 13-83
- FORALL, 5-41
- GOTO, 13-99
- IF, 13-101
- INSERT, 13-104
- LOCK TABLE, 13-110
- LOOP, 13-112
- MERGE, 13-119
- NULL, 13-119, 13-121
- OPEN, 6-7, 13-131
- OPEN-FOR, 6-19, 13-133
- OPEN-FOR-USING, 11-7
- RAISE, 13-150
- RETURN, 13-159
- ROLLBACK, 13-161
- SAVEPOINT, 13-165
- SELECT INTO, 13-166
- SET TRANSACTION, 13-173
- UPDATE, 13-184
- STDDEV aggregate function, 6-2
- STEP clause
- mimicking, 4-14
- stepwise refinement, 1-2
- STORAGE_ERROR exception, 7-6
- when raised, 8-60
- store tables, 5-7
- stored subprograms, 1-18
- streaming, data
- definition, 8-47
- string comparison semantics, B-2
- string literals, 2-9
- STRING subtype, 3-10
- structure theorem, 4-2
- stubs, 4-21, 8-3
- subprograms, 8-2
- advantages, 8-3
- declaring, 8-10
- how calls are resolved, 8-26
- local, 1-19
- overloading, 8-23
- packaged, 1-19, 8-11
- parts, 8-2
- procedure versus function, 8-6
- recursive, 8-60
- standalone, 1-19
- stored, 1-18
- subquery, 6-11
- SUBSCRIPT_BEYOND_COUNT exception, 7-6
- SUBSCRIPT_OUTSIDE_LIMIT exception, 7-6
- substitutability of object types, 8-28
- SUBSTR function, 7-19
- subtypes, 3-3, 3-21, 10-14
- CHARACTER, 3-6
- compatibility, 3-23
- constrained versus unconstrained, 3-22
- DEC, 3-4
- DECIMAL, 3-4
- defining, 3-22
- DOUBLE PRECISION, 3-4
- FLOAT, 3-4
- INT, 3-4
- INTEGER, 3-4
- NATURAL, 3-3
- NATURALN, 3-3
- NUMERIC, 3-4
- overloading, 8-25
- POSITIVE, 3-3
- POSITIVEN, 3-3
- REAL, 3-4
- SIGNTYPE, 3-3
- SMALLINT, 3-4
- STRING, 3-10
- VARCHAR, 3-10
- SUM aggregate function, 6-2
- supertypes, 10-14
- support for SQL, 6-2
- symbols
- compound, 2-4
- simple, 2-3
- syntax
- definition, 13-1
- diagram reading, 13-3
- SYS_REFCURSOR type, 8-39
- system-specific Oracle documentation
- PL/SQL wrapper, 12-15
T
- TABLE datatype, 5-2
- table functions, 8-30
- doing transformations with, 8-34
- parallel execution, 8-43
- pipelined, 8-33
- querying, 8-37
- TABLE operator, 5-22
- tabs, 2-2
- terminating condition, 8-60
- terminator, statement, 2-3
- ternary operators, 2-23
- THEN clause, 4-3
- TIMEOUT_ON_RESOURCE exception, 7-6
- TIMESTAMP datatype, 3-17
- TIMESTAMP WITH LOCAL TIME ZONE datatype, 3-18
- TIMESTAMP WITH TIME ZONE datatype, 3-17
- TOO_MANY_ROWS exception, 7-6
- top-down design, 1-16
- trailing blanks
- how handled, B-4
- transactions, 6-2
- autonomous, 6-53
- committing, 6-44
- context, 6-56
- distributed, 6-44
- ending properly, 6-48
- processing, 6-2, 6-43
- read-only, 6-48
- rolling back, 6-45
- visibility, 6-56
- TREAT operator, 10-14
- triggers, 1-19
- autonomous, 6-59
- TRIM collection method, 5-33
- TRUE value, 2-9
- %TYPE attribute, 2-13
- syntax, 13-182
- type definitions
- collection, 5-7
- forward, 10-33
- RECORD, 5-51
- REF CURSOR, 6-17
- type evolution
- in PL/SQL, 10-12
- type inheritance
- in PL/SQL, 10-14
U
- unary operators, 2-23
- underscores, 2-5
- unhandled exceptions, 7-12, 7-19
- uninitialized object
- how treated, 10-26
- UNION ALL set operator, 6-6
- UNION set operator, 6-6
- universal rowids, 3-7
- UPDATE statement
- RETURNING clause, 12-12
- syntax, 13-184
- with a record variable, 5-61
- URL (uniform resource locator), 9-18
- UROWID datatype, 3-7
- user session, 6-43
- user-defined exceptions, 7-7
- user-defined records, 5-51
- user-defined subtypes, 3-21
- USING clause, 11-3, 13-68
- UTF8 character encoding, 3-11
- UTL_FILE package, 9-17
- UTL_HTTP package, 9-18
V
- VALUE function, 10-35
- VALUE_ERROR exception, 7-6
- VARCHAR subtype, 3-10
- VARCHAR2
- datatype, 3-9
- semantics, B-1
- variables
- assigning values, 2-22
- declaring, 2-11
- initializing, 2-22
- session-specific, 9-11
- syntax, 13-39
- VARIANCE aggregate function, 6-2
- VARRAY datatype, 5-3
- varrays
- size limit, 5-8
- syntax, 13-29
- visibility
- of package contents, 9-3
- transaction, 6-56
- versus scope, 2-19
W
- WHEN clause, 4-10, 7-15
- WHILE loop, 4-11
- wildcards, 2-27
- words, reserved, F-1
- work areas, query, 6-16
- Wrap Utility, C-1
- input and output files, C-3
- running, C-2
Z
- ZERO_DIVIDE exception, 7-6