Skip Headers
Oracle® Database PL/SQL User's Guide and Reference
10g Release 2 (10.2)

Part Number B14261-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
View PDF

Index

A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  Y  Z 

Symbols

%BULK_EXCEPTIONS. See BULK_EXCEPTIONS cursor attribute
%BULK_ROWCOUNT. See BULK_ROWCOUNT cursor attribute
%FOUND. See FOUND cursor attribute
%ISOPEN. See ISOPEN cursor attribute
%NOTFOUND. See NOTFOUND cursor attribute
%ROWCOUNT. See ROWCOUNT cursor attribute
%ROWTYPE. See ROWTYPE attribute
%TYPE. See TYPE attribute
:= assignment operator, 1.2.2.2
|| concatenation operator, 2.6.1.9
. item separator, 2.1.1
<< label delimiter, 2.1.1
.. range operator, 2.1.1, 4.3.6
=, !=, <>, and ~= relational operators, 2.6.1.4
<, >, <=, and >= relational operators, 2.6.1.4
@ remote access indicator, 2.1.1, 2.3
-- single-line comment delimiter, 2.1.1
; statement terminator, 2.1.1, 13
- subtraction/negation operator, 2.1.1

A

ACCESS_INTO_NULL exception, 10.3
actual parameters, 6.4.2
additional information
Oracle Technology Network, Preface, 1
address
REF CURSOR, 6.5.1
advantages
PL/SQL, 1.1
aggregate assignment, 2.2.5.1
aggregate functions
and PL/SQL, 6.1.3
AVG, 2.9
COUNT, 2.9
AL16UTF16 character encoding, 3.1.3.1
aliases
using with a select list, 2.2.5.2
aliasing
for expression values in a cursor FOR loop, 6.3.7
parameters, 8.13
ALL row operator, 6.1.3, 6.1.5
ALL_PLSQL_OBJECT_SETTINGS view
PL/SQL compiler parameter settings, 11.1, 11.2, 11.9.7
ALTER .. COMPILE statement, 10.9.2
ALTER PROCEDURE
using to recompile a procedure, 10.9.3
analytic functions
CORR, 2.9
LAG, 2.9
anonymous blocks, 1.2.1
apostrophes, 2.1.3.3
architecture
PL/SQL, 1.3
ARRAY
VARYING, 5.3
arrays
associative, 5.1.1
index-by-tables, 5.1.1
variable-size, 5.1.1
articles
technical on OTN, Preface
AS
defining a procedure, 8.3
defining a procedure body, 8.3
assignment operator, 1.2.2.2
assignment statement
links to examples, 13
syntax, 13
assignments
aggregate, 2.2.5.1
character string, 3.4.1
collection, 5.5
field, 5.11
IN OUT parameters, 1.2.2.2
records, 5.11
semantics, 3.4.1
variables, 1.2.2.2
associative arrays
sets of key-value pairs, 5.1.1.3
syntax, 13
understanding, 5.1.1
VARCHAR2 keys and globalization settings, 5.1.1.4
versus nested tables, 5.2.1
asynchronous operations, 9.7.1
atomically null
object types in PL/SQL, 12.1.2
attributes
%ROWTYPE, 1.2.5.2, 2.2.5
%TYPE, 1.2.5.1, 2.2.4
explicit cursors, 6.2.2.6, 6.2.2.6
AUTHID clause
specifying privileges for a subprogram, 8.9.2
use with functions, 8.4
using to specify privileges of invoker, 8.9
autonomous functions
calling from SQL, 6.8.5
RESTRICT_REFERENCES pragma, 6.8.5
autonomous transactions
advantages, 6.8.1
avoiding errors, 6.8.3
comparison with nested transactions, 6.8.2.1
controlling, 6.8.3
in PL/SQL, 6.8
SQL%ROWCOUNT attribute, 6.2.1.1
autonomous triggers
using, 6.8.4
AUTONOMOUS_TRANSACTION pragma
defining, 6.8.2
links to examples, 13
syntax, 13
AVG
SQL aggregate function, 2.9

B

base types
PL/SQL number types, 3.1.1.1.1
PL/SQL types, 3.2
basic loops, 4.3.1
BEGIN
block structure, 1.2.1
start of executable part, 8.3
start of executable PL/SQL block, 13
syntax, 13
best practices
locating information on OTN, Preface
Oracle Technology Network, 1, 11
BETWEEN clause
FORALL, 13
BETWEEN comparison operator, 2.6.1.7
expressions, 13
BFILE datatype, 3.1.4.1
binary operators, 2.6
BINARY_DOUBLE datatype, 3.1.1.2
BINARY_FLOAT and BINARY_DOUBLE datatypes
for computation-intensive programs, 11.6
BINARY_FLOAT datatype, 3.1.1.2
BINARY_FLOAT_INFINITY
constant, 3.1.1.2
BINARY_FLOAT_MAX_NORMAL
constant, 3.1.1.2
BINARY_FLOAT_MAX_SUBNORMAL
constant, 3.1.1.2
BINARY_FLOAT_MIN_NORMAL
constant, 3.1.1.2
BINARY_FLOAT_MIN_SUBNORMAL
constant, 3.1.1.2
BINARY_FLOAT_NAN
constant, 3.1.1.2
BINARY_INTEGER datatype, 3.1.1.1
compared to PLS_INTEGER, Preface
new features, Preface
BINARY_INTEGER. See also PLS_INTEGER
bind variables, 1.2.2.3
binding, 11.5
blank-padding semantics, 3.4.2
BLOB datatype, 3.1.4.2
block declaration
syntax, 13
blocks
BEGIN, 1.2.1
DECLARE, 1.2.1
END, 1.2.1
EXCEPTION, 1.2.1
label, 2.4
links to examples, 13
nesting, 1.2.1, 1.2.1
PL/SQL, 13
structure, 1.2.1, 1.2.1
syntax, 13
BODY
CREATE PACKAGE SQL statement, 1.2.8.2, 9.1, 13
CREATE TYPE SQL statement, 13
with SQL CREATE PACKAGE statement, 1.2.8.2, 9.1
body
cursor, 9.9
function, 13
functions, 8.4
package, 9.4
packages, 13
procedure, 8.3, 13
Boolean
assigning values, 2.5.1
expressions, 2.6.2
literals, 2.1.3.4
BOOLEAN datatype, 3.1.5.1
built-in functions, 2.9
bulk
fetches, 11.5.2.1
returns, 11.5.2.3
BULK clause
with COLLECT, 11.5.2
BULK COLLECT clause, 11.5.2
checking whether no results are returned, 11.5.2
DELETE statement, 13
EXECUTE IMMEDIATE, 13
FETCH, 13
retrieving DML results, 11.5.2.3
retrieving query results with, 11.5.2
RETURNING clause, 13
returning multiple rows, 6.3.2
SELECT INTO, 13
using LIMIT clause, 11.5.2, 11.5.2.2
using ROWNUM pseudocolumn, 11.5.2
using SAMPLE clause, 11.5.2
using with FORALL statement, 11.5.2.4
bulk SQL
in dynamic SQL, 7.3
using to reduce loop overhead, 11.5
BULK_EXCEPTIONS cursor attribute
ERROR_CODE field, 11.5.1.3
ERROR_INDEX field, 11.5.1.3
example, 11.5.1.3
handling FORALL exceptions, 11.5.1.3
using ERROR_CODE field with SQLERRM, 11.5.1.3
BULK_ROWCOUNT cursor attribute
affected by FORALL, 11.5.1.2
by-reference parameter passing, 8.13
by-value parameter passing, 8.13

C

CALL
SQL statement, 1.2.8.2
call specification, 9.1
calling
Java stored procedures, 8.11
procedures, 1.2.8.2
stored subprograms, 1.3.1.2
calls
inter-language, 8.11
resolving subprogram, 8.8
subprograms, 8.6.2
CARDINALITY operator
for nested tables, 5.6
carriage returns, 2.1
CASE expressions, 2.6.3, 2.6.3
overview, 1.2.6.1
case sensitivity
identifier, 2.1.2
string literal, 2.1.3.3
CASE statement
links to examples, 13
searched, 4.2.4.1
syntax, 13
using, 4.2.4
CASE_NOT_FOUND exception, 10.3
CHAR datatype, 3.1.2.1
differences with VARCHAR2, 3.4
character literals, 2.1.3.2
character sets
PL/SQL, 2.1
CHARACTER subtype, 3.1.2.1.1
character values
assigning, 3.4.1
comparing, 3.4.2
inserting, 3.4.3
selecting, 3.4.4
clauses
AUTHID, 8.4, 8.9, 8.9.2
BULK COLLECT, 11.5.2
LIMIT, 11.5.2.2
CLOB datatype, 3.1.4.3
CLOSE statement
disables cursor, 6.2.2.5
disabling cursor variable
closing, 6.5.4.4
links to examples, 13
syntax, 13
code samples
Oracle Technology Network, Preface, 1
collating sequence, 2.6.2.2
COLLECT clause
with BULK, 11.5.2
collection exceptions
when raised, 5.9
collection methods
syntax, 13
usage, 5.8
COLLECTION_IS_NULL exception, 10.3
collections
allowed subscript ranges, 5.4.1
applying methods to parameters, 5.8.9
assigning, 5.5
associative arrays versus nested tables, 5.2.1
avoiding exceptions, 5.9
bulk binding, 5.11.5, 11.5
choosing the type to use, 5.2
comparing, 5.6
constructors, 5.4
COUNT method, 5.8.2
declaring variables, 5.3, 5.3.1
defining types, 5.3
DELETE method, 5.8.8
element types, 5.3
EXISTS method, 5.8.1
EXTEND method, 5.8.6
FIRST method, 5.8.4
initializing, 5.4
LAST method, 5.8.4
LIMIT method, 5.8.3
links to examples, 13, 13
methods, 5.8
multilevel, 5.7
NEXT method, 5.8.5
operators to transform nested tables, 5.5
ordered group of elements, 5.1
overview, 1.2.10.2
PRIOR method, 5.8.5
referencing, 5.4
referencing elements, 5.4.1
scope, 5.3
syntax, 13
testing for null, 5.6
TRIM method, 5.8.7
types in PL/SQL, 5
understanding, 5.1.1
using object types with, 12.4
varrays versus nested tables, 5.2.2
column aliases
expression values in a cursor loop, 6.3.7
when needed, 2.2.5.2
COMMENT clause
using with transactions, 6.7.1
comments
in PL/SQL, 2.1.4
links to examples, 13
restrictions, 2.1.4.3
syntax, 13
COMMIT statement, 6.7.1, 13
links to examples, 13
comparison operators, 6.1.5
comparisons
of character values, 3.4.2
of expressions, 2.6.2
of null collections, 5.6
operators, 2.6.1.3
PL/SQL, 2.6
with NULLs, 2.6.4
compiler parameter settings
ALL_PLSQL_OBJECT_SETTINGS view, 11.1, 11.2, 11.9.7
compiler parameters
and REUSE SETTINGS clause, 11.1
PL/SQL, 11.1
compiling
conditional, 1.2.7, 2.7
PL/SQL procedures for native execution, 11.9
composite types
collection and records, 5.1
overview, 3.1
concatenation operator, 2.6.1.9
treatment of nulls, 2.6.4.1
conditional compilation, 1.2.7, 2.7
availability for previous Oracle database releases, 2.7.1
control tokens, 2.7.1.1
examples, 2.7.2.1
inquiry directives, 2.7.1.4
limitations, 2.7.3
new features, Preface
NLS_LENGTH_SEMANTICS initialization parameter, 2.7.1.5
PLSQL_CCFLAGS initialization parameter, 2.7.1.5
PLSQL_CODE_TYPE initialization parameter, 2.7.1.5
PLSQL_DEBUG initialization parameter, 2.7.1.5
PLSQL_LINE flag, 2.7.1.5
PLSQL_OPTIMIZE_LEVEL initialization parameter, 2.7.1.5
PLSQL_UNIT flag, 2.7.1.5
PLSQL_WARNINGS initialization parameter, 2.7.1.5
restrictions, 2.7.3
static constants, 2.7.1.6.4
using PLSQL_CCFLAGS initialization parameter, 2.7.1.7, 2.7.1.7
using static expressions with, 2.7.1.6
using with DBMS_DB_VERSION, 2.7.1.8
using with DBMS_PREPROCESSOR, 2.7.2.2
conditional control, 4.2
conditional statement
guidelines, 4.2.5
CONSTANT
declaration, 13
for declaring constants, 1.2.2.4, 2.2.1
constants
declaring, 1.2.2.4, 2.2, 2.2.1
links to examples, 13
static, 2.7.1.6.4
syntax, 13
understanding PL/SQL, 1.2.2
constraints
NOT NULL, 2.2.3
constructors
collection, 5.4
context
transactions, 6.8.2.2
control structures
conditional, 4.2
iterative, 4.3
overview of PL/SQL, 4.1
sequential, 4.4
understanding, 1.2.6
conventions
PL/SQL naming, 2.3
conversions
datatype, 3.3
functions, 3.3.2
CORR
SQL analytic function, 2.9
correlated subqueries, 6.4.1
COUNT
SQL aggregate function, 2.9
COUNT method
collections, 5.8.2, 13
CREATE
with PROCEDURE statement, 1.2.8.1, 1.3.1.2, 8.1
CREATE FUNCTION statement, 1.2.8.1, 1.3.1.2, 8.1
CREATE PROCEDURE statement, 1.2.8.1, 1.3.1.2, 8.1
CREATE statement
packages, 1.2.8.2, 9.1
with FUNCTION, 1.2.8.1, 1.3.1.2, 8.1
CREATE_WRAPPED function
obfuscation, A.3
using, A.3.1
creating
functions, 1.2.8.1, 1.3.1.2, 8.1
packages, 1.2.8.2, 9.1
procedures, 1.2.8.1, 1.3.1.2, 8.1
CURRENT OF clause
with UPDATE, 6.7.7
CURRVAL
pseudocolumn, 6.1.4
cursor attributes
%BULK_EXCEPTIONS, 11.5.1.3
%BULK_ROWCOUNT, 11.5.1.2
%FOUND, 6.2.1.1, 6.2.2.6
%ISOPEN, 6.2.1.1, 6.2.2.6
%NOTFOUND, 6.2.1.1, 6.2.2.6
%ROWCOUNT, 6.2.1.1, 6.2.2.6
explicit, 6.2.2.6
implicit, 6.2.1.1
links to examples, 13
syntax, 13
values after OPEN, FETCH, and CLOSE, 6.2.2.6
cursor declarations
links to examples, 13
syntax, 13
cursor expressions
examples, 6.6.2
REF CURSORs, 6.6.3
restrictions, 6.6.1
using, 6.6
cursor FOR loops
passing parameters to, 6.4.2
cursor subqueries
using, 6.6
cursor variables, 6.5
advantages of, 6.5.2
as parameters to table functions, 11.10.8
avoiding errors with, 6.5.6
closing, 6.5.4.4
declaring, 6.5.3
defining, 6.5.3
fetching from, 6.5.4.3
links to examples, 13
opening, 6.5.4.1
passing as parameters, 6.5.3.1
reducing network traffic, 6.5.5
restrictions, 6.5.7
syntax, 13
using as a host variable, 6.5.4.2
CURSOR_ALREADY_OPEN exception, 10.3
cursors
advantages of using cursor variables, 6.5.2
attributes of explicit, 6.2.2.6
attributes of implicit, 6.2.1.1
closing explicit, 6.2.2.5
declaring explicit, 6.2.2.1
definition, 1.2.10.1
explicit, 1.2.10.1, 6.2.2
explicit FOR loops, 6.3.6
expressions, 6.6
fetching from, 6.2.2.3
guidelines for implicit, 6.2.1.2
implicit, 1.2.10.1
opening explicit, 6.2.2.2
packaged, 9.9
parameterized, 6.4.2
REF CURSOR variables, 6.5
RETURN clause, 9.9
scope rules for explicit, 6.2.2.1
SYS_REFCURSOR type, 11.10.8
variables, 6.5

D

data abstraction
understanding PL/SQL, 1.2.10
database character set, 3.1.3
database triggers, 1.3.1.3
autonomous, 6.8.4
datatypes
BFILE, 3.1.4.1
BINARY_INTEGER, 3.1.1.1
BLOB, 3.1.4.2
BOOLEAN, 3.1.5.1
CHAR, 3.1.2.1
CLOB, 3.1.4.3
DATE, 3.1.6.1
explicit conversion, 3.3.1
families, 3.1
implicit conversion, 3.3.2
INTERVAL DAY TO SECOND, 3.1.6.6
INTERVAL YEAR TO MONTH, 3.1.6.5
LONG, 3.1.2.2
LONG RAW, 3.1.2.2
national character, 3.1.3
NCHAR, 3.1.3.2
NCLOB, 3.1.4.4
NUMBER, 3.1.1.3
NVARCHAR2, 3.1.3.3
PLS_INTEGER, 3.1.1.4
PL/SQL, 3
RAW, 3.1.2.3
RECORD, 5.1
REF CURSOR, 6.5.1
ROWID, 3.1.2.4
scalar versus composite, 3.1
TABLE, 5.3
TIMESTAMP, 3.1.6.2
TIMESTAMP WITH LOCAL TIME ZONE, 3.1.6.4
TIMESTAMP WITH TIME ZONE, 3.1.6.3
UROWID, 3.1.2.4
VARCHAR2, 3.1.2.5
VARRAY, 5.1.1.2, 5.3
DATE datatype, 3.1.6.1
dates
converting, 3.3.4
TO_CHAR default format, 3.3.4
datetime
arithmetic, 3.1.7
datatypes, 3.1.6
literals, 2.1.3.5
DAY
datatype field, 3.1.6
DBMS_ALERT package, 9.7.1
DBMS_DB_VERSION package
using with conditional compilation, 2.7.1.8
DBMS_DDL package
functions for hiding PL/SQL source code, A
limitations, A.1.2
obfuscating PL/SQL code, A
using, A.3.1
wrap functions, A.3
wrapping PL/SQL code, A
DBMS_OUTPUT package
displaying output, 1.2.9
displaying output from PL/SQL, 9.7.2
using PUT_LINE to display output, 1.2.2.2
DBMS_PIPE package, 9.7.3
DBMS_PREPROCESSOR package
using with conditional compilation, 2.7.2.2
DBMS_PROFILE package
gathering statistics for tuning, 11.4.1
DBMS_SQL package, 7.1
PARSE procedure, 8.9.4
replace with dynamic SQL, 7.1
upgrade to dynamic SQL, 11.7
using for a query, 7.1
DBMS_TRACE package
tracing code for tuning, 11.4.2
DBMS_WARNING package
controlling warning messages in PL/SQL, 10.9.3
dbmsupbin.sql script
interpreted compilation, 11.9.9
dbmsupgnv.sql script
for PL/SQL native compilation, 11.9.9
deadlocks
how handled by PL/SQL, 6.7.4
DEC
NUMBER subtype, 3.1.1.3.1
DECIMAL
NUMBER subtype, 3.1.1.3.1
declarations
collection, 5.3.1
constants, 1.2.2.4, 2.2.1
cursor variables, 6.5.3
exceptions in PL/SQL, 10.4.1
explicit cursor, 6.2.2.1
object in a PL/SQL block, 12.1.1
PL/SQL functions, 1.2.4
PL/SQL procedures, 1.2.4
PL/SQL subprograms, 1.2.4
PL/SQL variables, 1.2.5
restrictions, 2.2.6
subprograms, 8.5
using %ROWTYPE, 2.2.5
using %TYPE attribute, 2.2.4
using DEFAULT, 2.2.2
using NOT NULL constraint, 2.2.3
variables, 1.2.2.1, 2.2
declarative part
of function, 8.4
of PL/SQL block, 1.2.1
of procedure, 8.3
DECLARE
block structure, 1.2.1
for local declarations, 8.3
start of declarative part of a PL/SQL block, 13
syntax, 13
DECODE function
treatment of nulls, 2.6.4.1
DEFAULT keyword
for assignments, 2.2.2
DEFAULT option
FUNCTION, 13
RESTRICT_REFERENCES, 13
default parameter values, 8.6.4
default value
effect on %ROWTYPE declaration, 2.2.5
effect on %TYPE declaration, 2.2.4
DEFINE
limitations of use with wrap utility, A.1.2.1
definer's rights
privileges on subprograms, 8.9
DELETE method
collections, 5.8.8, 13
DELETE statement
links to examples, 13
syntax, 13
delimiters, 2.1.1
demos
PL/SQL, Preface
dense collections
arrays versus nested tables, 5.1.1.1
DETERMINISTIC hint
function syntax, 13
use with functions, 8.4
digits of precision, 3.1.1.3
displaying output
from PL/SQL, 1.2.2.2
setting SERVEROUTPUT, 1.2.9, 9.7.2
using DBMS_OUTPUT.PUT_LINE, 1.2.2.2
with DBMS_OUTPUT, 1.2.9
DISTINCT row operator, 6.1.3, 6.1.5
dot notation, 1.2.5.1
for collection methods, 5.8
for global variables, 4.3.6.3
for object attributes in PL/SQL, 12.2.1
for object methods in PL/SQL, 12.2.2
for package contents, 9.3.1
DOUBLE PRECISION
NUMBER subtype, 3.1.1.3.1
DUP_VAL_ON_INDEX exception, 10.3
dynamic dispatch, 8.8.1
dynamic SQL, 1.1.1, 7.1
building a dynamic multi-row query, 7.4.1
guidelines, 7.4
improving performance, 7.4.3
passing nulls, 7.4.7
passing object names as parameters, 7.4.4
RETURNING clause, 7.2
specifying parameter modes, 7.2.1
tips and traps, 7.4
tuning, 11.7
using bulk SQL, 7.3
USING clause, 7.2
using cursor attributes, 7.4.6
using database links, 7.4.8
using duplicate placeholders, 7.4.5
using EXECUTE IMMEDIATE statement, 7.2
using invoker rights, 7.4.9
using RESTRICT_REFERENCES, 7.4.10
using the semicolon, 7.4.2
dynamic string length
with OPEN FOR statement, 13
dynamic wrapping
DBMS_DDL package, A
new features, Preface

E

element types
collection, 5.3
ELSE clause
using, 4.2.2
ELSIF clause
using, 4.2.3
END
block structure, 1.2.1
end of a PL/SQL block, 13
end of executable part, 8.3
syntax, 13
END IF
end of IF statement, 4.2.1
END LOOP
end of LOOP statement, 4.3.5
error handling
in PL/SQL, 10
overview, 1.2.11
error messages
maximum length, 10.8.4
ERROR_CODE
BULK_EXCEPTIONS cursor attribute field, 11.5.1.3
using with SQLERRM, 11.5.1.3
ERROR_INDEX
BULK_EXCEPTIONS cursor attribute field, 11.5.1.3
evaluation
short-circuit, 2.6.1.2
EXCEPTION
block structure, 1.2.1
exception handling part, 8.3
exception-handling part of a block, 13
syntax in PL/SQL block, 13
exception definition
syntax, 13
exception handlers
OTHERS handler, 10.1
overview, 1.2.11
using RAISE statement in, 10.7, 10.8
using SQLCODE function in, 10.8.4
using SQLERRM function in, 10.8.4
WHEN clause, 10.8
EXCEPTION_INIT pragma
links to examples, 13
syntax, 13
using with RAISE_APPLICATION_ERROR, 10.4.4
with exceptions, 10.4.3
exception-handling part
of function, 8.4
of PL/SQL block, 1.2.1
of procedure, 8.3
exceptions
advantages of PL/SQL, 10.2
branching with GOTO, 10.8.3
catching unhandled in PL/SQL, 10.8.5
continuing after an exception is raised, 10.8.6.1
controlling warning messages, 10.9.2
declaring in PL/SQL, 10.4.1
definition, 13
handling in PL/SQL, 10
links to examples, 13
list of predefined in PL/SQL, 10.3
locator variables to identify exception locations, 10.8.6.3
OTHERS handler in PL/SQL, 10.8
PL/SQL compile-time warnings, 10.9
PL/SQL error condition, 10.1
PL/SQL warning messages, 10.9.1
predefined in PL/SQL, 10.3
propagation in PL/SQL, 10.6
raise_application_error procedure, 10.4.4
raised in a PL/SQL declaration, 10.8.1
raised in handlers, 10.8.2
raising in PL/SQL, 10.5
raising predefined explicitly, 10.5.1
raising with RAISE statement, 10.5.1
redeclaring predefined in PL/SQL, 10.4.5
reraising in PL/SQL, 10.7
retrying a transaction after, 10.8.6.2
scope rules in PL/SQL, 10.4.2
tips for handling PL/SQL errors, 10.8.6
user-defined in PL/SQL, 10.4
using EXCEPTION_INIT pragma, 10.4.3
using SQLCODE, 10.8.4
using SQLERRM, 10.8.4
using the DBMS_WARNING package, 10.9.3
using WHEN and OR, 10.8
WHEN clause, 10.8
executable part
of function, 8.4
of PL/SQL block, 1.2.1
of procedure, 8.3
EXECUTE IMMEDIATE statement, 7.2
links to examples, 13
syntax, 13
EXECUTE privilege
subprograms, 8.9.6
EXISTS method
collections, 5.8.1, 13
EXIT statement
early exit of LOOP, 4.3.6.4
links to examples, 13
stopping a loop, 4.3.1
syntax, 13
using, 4.3.2
where allowed, 4.3.1
EXIT-WHEN statement
overview, 1.2.6.2
using, 4.3.3
explicit cursors, 6.2.2
explicit datatype conversion, 3.3.1
explicit declarations
cursor FOR loop record, 6.3.6
expressions
Boolean, 2.6.2
CASE, 2.6.3, 2.6.3
examples, 13
PL/SQL, 2.6
static, 2.7.1.6
syntax, 13
EXTEND method
collections, 5.8.6, 13
extended rowids, 3.1.2.4.1
external
references, 8.9.2
routines, 8.11
subprograms, 8.11

F

FALSE value, 2.1.3.4
features, new, Preface
FETCH statement
links to examples, 13
syntax, 13
using explicit cursors, 6.2.2.3
with cursor variable, 6.5.4.3
fetching
across commits, 6.7.7
bulk, 11.5.2.1, 11.5.2.1
fields
of records, 5.1
file I/O, 9.7.5
FIRST method
collections, 5.8.4, 13
FLOAT
NUMBER subtype, 3.1.1.3.1
FOR loops
explicit cursors, 6.3.6
nested, 4.3.6.3
FOR UPDATE clause, 6.2.2.2
when to use, 6.7.7
FORALL statement
links to examples, 13
syntax, 13
using, 11.5.1
using to improve performance, 11.5.1
using with BULK COLLECT clause, 11.5.2.4
with rollbacks, 11.5.1.1
FOR-LOOP statement
syntax, 13
using, 4.3.6
formal parameters, 6.4.2
format
masks, 3.3.4
forward
declarations of subprograms, 8.5
references, 2.2.6
FOUND cursor attribute
explicit, 6.2.2.6
implicit, 6.2.1.1
FUNCTION
with CREATE statement, 1.2.8.1, 1.3.1.2, 8.1
function declaration
syntax, 13
functions
body, 8.4, 13
built-in, 2.9
calling, 8.4
creating, 1.2.8.1, 1.3.1.2, 8.1
declaration, 13
DETERMINISTIC hint, 8.4
in PL/SQL, 8
links to examples, 13
PARALLEL_ENABLE option, 8.4
parameters, 8.4
parts, 8.4
pipelined, 11.10
RETURN clause, 8.4
RETURN statement, 8.4.1
specification, 8.4
table, 11.10.1
understanding, 8.4

G

GOTO statement
branching into or out of exception handler, 10.8.3
label, 4.4.1
links to examples, 13
overview, 1.2.6.3
restrictions, 4.4.1.1
syntax, 13
using, 4.4.1
GROUP BY clause, 6.1.3

H

handlers
exception in PL/SQL, 10.1
handling errors
PL/SQL, 10
handling exceptions
PL/SQL, 10
raised in as PL/SQL declaration, 10.8.1
raised in handler, 10.8.2
using OTHERS handler, 10.8
handling of nulls, 2.6.4
hash tables
simulating with associative arrays, 5.2
hiding PL/SQL code, A
host arrays
bulk binds, 11.5.2.5
HOUR
datatype field, 3.1.6
HTF package, 9.7.4
HTP package, 9.7.4
hypertext markup language (HTML), 9.7.6
hypertext transfer protocol (HTTP), 1.1.6
UTL_HTTP package, 9.7.6

I

identifiers
forming, 2.1.2
maximum length, 2.1.2
quoted, 2.1.2.3
scope rules, 2.4
IF statement, 4.2
ELSE clause, 4.2.2
links to examples, 13
syntax, 13
using, 4.2.1
IF-THEN statement
using, 4.2.1
IF-THEN-ELSE statement
overview, 1.2.6.1
using, 4.2.2
IF-THEN-ELSEIF statement
using, 4.2.3
IMMEDIATE
with EXECUTE statement, 7.2
implicit cursors
attributes, 6.2.1.1
guidelines, 6.2.1.2
implicit datatype conversion, 3.3.2
implicit datatype conversions
performance, 11.3.1.6
implicit declarations
FOR loop counter, 4.3.6.3
IN comparison operator, 2.6.1.8
IN OUT parameter mode
subprograms, 8.6.3.3
IN parameter mode
subprograms, 8.6.3.1
INDEX BY
collection definition, 13
index-by tables
See associative arrays
INDICES OF clause
FORALL, 13
with FORALL, 11.5.1
infinite loops, 4.3.1
inheritance
and overloading, 8.8.1
initialization
collections, 5.4
objects in PL/SQL, 12.1.2
package, 9.4
using DEFAULT, 2.2.2
variable, 2.5
with NOT NULL constraint, 2.2.3
initialization parameters
PL/SQL compilation, 11.1
INSERT statement
links to examples, 13
syntax, 13
with a record variable, 5.11.2
INT
NUMBER subtype, 3.1.1.3.1
INTEGER
NUMBER subtype, 3.1.1.3.1
integer
BINARY, 3.1.1.1
PLS datatype, 3.1.1.4
inter-language calls, 8.11
interpreted compilation
dbmsupbin.sql script, 11.9.9
recompiling all PL/SQL modules, 11.9.9
INTERSECT set operator, 6.1.5
interval
arithmetic, 3.1.7
INTERVAL DAY TO SECOND datatype, 3.1.6.6
INTERVAL YEAR TO MONTH datatype, 3.1.6.5
intervals
datatypes, 3.1.6
INTO
SELECT INTO statement, 13
INTO clause
with FETCH statement, 6.5.4.3
INTO list
using with explicit cursors, 6.2.2.3
INVALID_CURSOR exception, 10.3
INVALID_NUMBER exception, 10.3
invoker's rights
advantages, 8.9.1
privileges on subprograms, 8.9
IS
defining a procedure, 8.3
defining a procedure body, 8.3
IS A SET operator, 5.6
IS EMPTY operator, 5.6
IS NULL comparison operator, 2.6.1.5
expressions, 13
ISOLATION LEVEL parameter
READ COMMITTED, 13
SERIALIZABLE, 13
setting transactions, 13
ISOPEN cursor attribute
explicit, 6.2.2.6
implicit, 6.2.1.1

J

JAVA
use for calling external subprograms, 8.11
Java
call specs, 8.11
Java stored procedures
calling from PL/SQL, 8.11
JDeveloper with PL/SQL
Oracle By Example tutorial, Preface

K

keywords
in PL/SQL, D
list of PL/SQL, D
use in PL/SQL, 2.1.2.1

L

labels
block, 2.4
block structure, 13
exiting loops, 4.3.4
GOTO statement, 4.4.1
loops, 4.3.4
syntax, 13
LAG
SQL analytic function, 2.9
LANGUAGE
use for calling external subprograms, 8.11
language elements
of PL/SQL, 13
large object (LOB) datatypes, 3.1.4
LAST method
collections, 5.8.4, 13
LEVEL
pseudocolumn, 6.1.4
LEVEL parameter
with ISOLATION to set transactions, 13
lexical units
PL/SQL, 2.1
LIKE comparison operator, 2.6.1.6
expressions, 13
LIMIT clause
FETCH, 13
using to limit rows for a Bulk FETCH operation, 11.5.2.2
LIMIT method
collections, 5.8.3, 13
limitations
DBMS_DDL package, A.1.2
native compilation, 11.9.3.3
of PL/SQL programs, C
PL/SQL compiler, C
wrap utility, A.1.2
limits
on PL/SQL programs, C
literals
Boolean, 2.1.3.4
character, 2.1.3.2
datetime, 2.1.3.5
examples, 13
NCHAR string, 2.1.3.3
NUMBER datatype, 2.1.3.1
numeric, 2.1.3.1
numeric datatypes, 2.1.3.1
string, 2.1.3.3
syntax, 13
types of PL/SQL, 2.1.3
LOB (large object) datatypes, 3.1.4
lob locators, 3.1.4
local subprograms, 1.3.1.2
locator variables
used with exceptions, 10.8.6.3
LOCK TABLE statement
examples, 13
locking a table, 6.7.7
syntax, 13
locks
modes, 6.7
overriding, 6.7.7
transaction processing, 6.7
using FOR UPDATE clause, 6.7.7
logical operators, 2.6.1
logical rowids, 3.1.2.4
LOGIN_DENIED exception, 10.3
LONG datatype, 3.1.2.2
maximum length, 3.1.2.2
restrictions, 3.1.2.2
supported only for backward compatibility, 3.1.2.2
LONG RAW datatype, 3.1.2.2
converting, 3.3.5
maximum length, 3.1.2.2
supported only for backward compatibility, 3.1.2.2
LOOP statement
links to examples, 13
overview, 1.2.6.2
syntax, 13
using, 4.3.1
loops
counters, 4.3.6
dynamic ranges, 4.3.6.2
exiting using labels, 4.3.4
implicit declaration of counter, 4.3.6.3
iteration, 4.3.6.1
labels, 4.3.4
reversing the counter, 4.3.6
scope of counter, 4.3.6.3

M

maximum precision, 3.1.1.3
maximum size
CHAR value, 3.1.2.1
identifier, 2.1.2
LOB, 3.1.4
LONG RAW value, 3.1.2.2
LONG value, 3.1.2.2
NCHAR value, 3.1.3.2
NVARCHAR2 value, 3.1.3.3
Oracle error message, 10.8.4
RAW value, 3.1.2.3
VARCHAR2 value, 3.1.2.5
MEMBER OF operator, 5.6
membership test, 2.6.1.8
memory
avoid excessive overhead, 11.3.2
MERGE statement
syntax, 13
methods
collection, 5.8
MINUS set operator, 6.1.5
MINUTE
datatype field, 3.1.6
modularity, 1.2.8
packages, 9.2
MONTH
datatype field, 3.1.6
multilevel collections
using, 5.7
multi-line comments, 2.1.4.2
MULTISET EXCEPT operator, 5.5
MULTISET INTERSECT operator, 5.5
MULTISET UNION operator, 5.5

N

NAME
for calling external subprograms, 8.11
NAME parameter
setting transactions, 13
transactions, 6.7.6
name resolution, 2.3
differences between PL/SQL and SQL, B.3
global and local variables, B.1
inner capture in DML statements, B.5
overriding in subprograms, 8.9.5
qualified names and dot notation, B.2
qualifying references to attributes and methods, B.6
understanding, B.1
understanding capture, B.4
with synonyms, 8.9.5
names
explicit cursor, 6.2.2.1
qualified, 2.3
savepoint, 6.7.3
variable, 2.3
naming conventions
PL/SQL, 2.3
national character datatypes, 3.1.3
national character set, 3.1.3
National Language Support (NLS), 3.1.3
native compilation
and Real Application Clusters, 11.9.3.2
certified compilers in installation guides, 11.9.1
creating databases for, 11.9.8
dbmsupgnv.sql script, 11.9.9
dependencies, 11.9.3.1
enhancements, Preface
how it works, 11.9.3
initialization parameters, 11.9.5
invalidation, 11.9.3.1
limitations, 11.9.3.3
modifying databases for, 11.9.9
new and updated components, Preface
Oracle Metalink, 11.9
Oracle Technology Network, 11.9
performance gains, 11.9.2
PL/SQL code, 11.9
plsql_code_type column, 11.9.7
prerequirements, 11.9.1
revalidation, 11.9.3.1
setting up, 11.9.7
setting up databases, 11.9.8
setting up library subdirectories, 11.9.6
shared libraries, 11.9.3
spnc_commands file, 11.9.4
testing, 11.9.1
understanding, 11.9.1
using, 11.9.7
utlirp.sql script, 11.9.7
utlrp.sql script, 11.9.9
native dynamic SQL. See dynamic SQL
native execution
compiling PL/SQL procedures for, 11.9
NATURAL
BINARY_INTEGER subtype, 3.1.1.1.1
NATURAL and NATURALN subtypes, 3.1.1.1.1
NATURALN
BINARY_INTEGER subtype, 3.1.1.1.1
NCHAR datatype, 3.1.3.2
NCLOB datatype, 3.1.4.4
nested collections, 5.7
nested cursors
using, 6.6
nested tables
manipulating in PL/SQL, 12.4
sets of values, 5.1.1.1
syntax, 13
transforming with operators, 5.5
understanding, 5.1.1
versus associative arrays, 5.2.1
versus varrays, 5.2.2
nesting
block, 1.2.1, 1.2.1
FOR loops, 4.3.6.3
record, 5.10
new features, Preface
PL/SQL information on Oracle Technology Network, Preface
NEXT method
collections, 5.8.5, 13
NEXTVAL
pseudocolumn, 6.1.4
nibble
half a byte, 3.3.5
NLS (National Language Support), 3.1.3
NLS_LENGTH_SEMANTICS initialization parameter
use with conditional compilation, 2.7.1.5
NO COPY hint
FUNCTION, 13
NO_DATA_FOUND exception, 10.3
NOCOPY compiler hint
for tuning, 11.8
restrictions on, 11.8.1
non-blank-padding semantics, 3.4.2
NOT logical operator
treatment of nulls, 2.6.4.1
NOT NULL
declaration, 13
NOT NULL constraint
effect on %ROWTYPE declaration, 2.2.5
effect on %TYPE declaration, 2.2.4
restriction on explicit cursors, 6.2.2.1
using in collection declaration, 5.3.1
using in variable declaration, 2.2.3
NOT NULL option
record definition, 13
NOT_LOGGED_ON exception, 10.3
notation
positional versus named, 8.6.2
NOTFOUND cursor attribute
explicit, 6.2.2.6
implicit, 6.2.1.1
NOWAIT option
LOCK TABLE, 13
NOWAIT parameter
using with FOR UPDATE, 6.7.7
NVARCHAR2 datatype, 3.1.3.3
null handling, 2.6.4
in dynamic SQL, 7.4.7
NULL statement
links to examples, 13
syntax, 13
using, 4.4.2
using in a procedure, 8.3
NUMBER datatype, 3.1.1.3
range of literals, 2.1.3.1
range of values, 3.1.1.3
NUMBER subtypes, 3.1.1.3.1
NUMERIC
NUMBER subtype, 3.1.1.3.1
numeric literals, 2.1.3.1
PL/SQL datatypes, 2.1.3.1
NVL function
treatment of nulls, 2.6.4.1

O

obfuscating
PL/SQL code, A
understanding, A.1
obfuscation
CREATE_WRAPPED function, A.3
DBMS_DDL package, A.3
hiding PL/SQL code, A
limitations, A.1.2
recommendations, A.1.1
tips, A.1.1
understanding, A.1
using DBMS_DDL CREATE_WRAPPED function, A.3.1
viewing source, A.1, A.3.1
WRAP function, A.3
wrap utility, A.2
object constructors
calling in PL/SQL, 12.2.2
passing parameters to in PL/SQL, 12.2.2
object methods
calling in PL/SQL, 12.2.2
object type declaration
syntax, 13
object types
declaring in a PL/SQL block, 12.1.1
defining in PL/SQL, 12.1
initializing in PL/SQL, 12.1, 12.1.2
overview, 1.2.10.4
using with invoker's rights subprograms, 8.9.10
using with PL/SQL, 12
using with PL/SQL collections, 12.4
object-oriented programming
with PL/SQL, 12
ONLY parameter
with READ to set transactions, 13
on-the-fly wrapping
DBMS_DDL package, A
new features, Preface
OPEN FOR statement
dynamic string length, 13
OPEN statement
explicit cursors, 6.2.2.2
links to examples, 13
syntax, 13
OPEN-FOR statement, 6.5.4.1
links to examples, 13
syntax, 13
OPEN-FOR-USING statement
syntax, 13
operators
comparison, 2.6.1.3
logical, 2.6.1
precedence, 2.6
relational, 2.6.1.4
optimizing
PL/SQL programs, 11.2
OR keyword
using with EXCEPTION, 10.8
Oracle By Example
PL/SQL new features, Preface
Oracle Metalink
native compilation, 11.9
spnc_commands, 11.9.4
Oracle Technology Network
best practices, 1, 11
code samples, Preface, 1
information on PL/SQL new features, Preface
native compilation, 11.9
SQL injection, 7.4, 13
table function examples, 11.10
table functions, 11.10
tuning information, 11
order of evaluation, 2.6, 2.6.1.1
OTHERS clause
exception handling, 13
OTHERS exception handler, 10.1, 10.8
OTN
technical articles, Preface
OUT parameter mode
subprograms, 8.6.3.2
overloading
and inheritance, 8.8.1
guidelines, 8.7.1
packaged subprograms, 9.5
restrictions, 8.7.2
subprogram names, 8.7

P

PACKAGE
with SQL CREATE statement, 1.2.8.2, 9.1
PACKAGE BODY
with SQL CREATE statement, 1.2.8.2, 9.1
package declaration
syntax, 13
packaged cursors, 9.9
packaged subprograms, 1.3.1.2
packages
advantages, 9.2
bodiless, 9.3
body, 9.1, 9.4, 13
call specification, 9.1
calling subprograms, 9.3.1
contents of, 9.1.1
creating, 1.2.8.2, 9.1
cursor specifications, 9.9
cursors, 9.9
declaration, 13
dot notation, 9.3.1
examples of features, 9.5
global variables, 9.5
guidelines for writing, 9.8
hidden declarations, 9.1
initializing, 9.4
links to examples, 13
modularity, 9.2
overloading subprograms, 9.5
overview, 1.2.8.2
overview of Oracle supplied, 9.7
private versus public objects, 9.5.1
product-specific, 9.7
product-specific for use with PL/SQL, 1.1.6
referencing, 9.3.1
restrictions on referencing, 9.3.1.1
scope, 9.3
serially reusable, 13
specification, 9.1, 13
specifications, 9.3
STANDARD package, 9.6
understanding, 9.1
visibility of contents, 9.1
PARALLE_ENABLE option
FUNCTION, 13
PARALLEL_ENABLE option
use with functions, 8.4
parameter passing
by reference, 8.13
by value, 8.13
in dynamic SQL, 7.2.1
parameters
actual, 6.4.2
actual versus formal, 8.6.1
aliasing, 8.13
cursor, 6.4.2
default values, 8.6.4
formal, 6.4.2
IN mode, 8.6.3.1
IN OUT mode, 8.6.3.3
in PL/SQL subprograms, 8.3
modes, 8.6.3
OUT mode, 8.6.3.2
summary of modes, 8.6.3.4
parentheses, 2.6
pattern matching, 2.6.1.6
performance
avoid memory overhead, 11.3.2
avoiding problems, 11.3
improving with PL/SQL, 1.1.2
performance. See also tuning
physical rowids, 3.1.2.4
pipe, 9.7.3
PIPE ROW statement
for returning rows incrementally, 11.10.4
PIPELINED
function option, 11.10.2, 13
pipelined functions
exception handling, 11.10.11
fetching from results of, 11.10.7
for querying a table, 11.10.1
overview, 11.10.1
passing data with cursor variables, 11.10.8
performing DML operations inside, 11.10.9
performing DML operations on, 11.10.10
returning results from, 11.10.4
transformation of data, 11.10
transformations, 11.10.3
writing, 11.10.2
pipelines
between table functions, 11.10.5
returning results from table functions, 11.10.4
support collection types, 11.10.2
using table functions, 11.10.3
writing table functions, 11.10.2
pipelining
definition, 11.10.1
placeholders
duplicate, 7.4.5
PLS_INTEGER datatype, 3.1.1.4
compared to BINARY_INTEGER, Preface
new features, Preface
overflow condition, 3.1.1.4
range update, Preface
PL/SQL
advantages, 1.1
anonymous blocks, 1.2.1
architecture, 1.3
assigning Boolean values,