Skip Headers
Oracle® Database PL/SQL Language Reference
11g Release 1 (11.1)

Part Number B28370-04
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
|| concatenation operator, 2.6.1
. item separator, 2.1.1
<< label delimiter, 2.1.1
.. range operator, 2.1.1, 4.3.8
@ 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, 11.4
actual parameters, 6.4.2
address
REF CURSOR, 6.5.1
advantages
PL/SQL, 1.1
AFTER clause
of CREATE TRIGGER, 14
AFTER triggers, 14
auditing and, 9.12.1, 9.12.1
correlation names and, 9.5.1
specifying, 9.4.3
aggregate assignment, 2.2.6.1
aggregate functions
and PL/SQL, 6.1.3
user-defined, 14
aliases
using with a select list, 2.2.6.2
aliasing
bulk binds and, 12.6.2.6
for expression values in a cursor FOR loop, 6.3.6
subprogram parameters and, 8.11
ALL row operator, 6.1.3, 6.1.5.3
ALTER FUNCTION statement, 14
ALTER PACKAGE statement, 14
ALTER PROCEDURE statement, 14
ALTER statements, 14
triggers on, 14
ALTER TABLE statement
DISABLE ALL TRIGGERS clause, 9.10
ENABLE ALL TRIGGERS clause, 9.9
ALTER TRIGGER statement, 14
DISABLE clause, 9.10
ENABLE clause, 9.9
ALTER TYPE statement, 14
analytic functions
user-defined, 14
anonymous block
definition of, 1.2.1
ANSI/ISO SQL standard, 6.1
apostrophes, 2.1.3.3
architecture
PL/SQL, 1.3.1
ARRAY
VARYING, 5.3
arrays
associative, 5.1.1
characteristic of, 5.1
globalization and, 5.1.1
in other languages
simulating with varrays, 5.2
multidimensional, 5.9
variable-size (varrays)
characteristics of, 5.1
AS EXTERNAL clause
of CREATE FUNCTION, 14
of CREATE TYPE BODY, 14
AS OBJECT clause
of CREATE TYPE, 14
AS TABLE clause
of CREATE TYPE, 14
AS VARRAY clause
of CREATE TYPE, 14
assignment operator, 1.2.4.2
assignment statement
links to examples, 13
syntax, 13
assignments
aggregate, 2.2.6.1
collection, 5.7
field, 5.14
IN OUT parameters, 1.2.4.2
records, 5.14
variables, 1.2.4.2
associative arrays, 5.1.1
characteristic of, 5.1
compared to nested tables, 5.2.1
globalization and, 5.1.1
syntax, 13
asynchronous operations, 10.10.1
attributes
%ROWTYPE, 1.2.5.3, 2.2.6
%TYPE, 1.2.5.2
explicit cursors, 6.2.2.6, 6.2.2.6
of user-defined types
mapping to Java fields, 14
auditing
triggers and, 9.12.1
AUTHID clause
of ALTER TYPE, 14
AUTHID CURRENT_USER clause
of CREATE FUNCTION, 14, 14
of CREATE PACKAGE, 14
of CREATE PROCEDURE, 14
of CREATE TYPE, 14, 14
AUTHID DEFINER clause
of CREATE FUNCTION, 14, 14
of CREATE PACKAGE, 14
of CREATE PROCEDURE, 14
of CREATE TYPE, 14, 14
AUTHID property, 8.7
autonomous functions
invoking from SQL, 6.8.5
RESTRICT_REFERENCES pragma, 6.8.5
autonomous transactions
advantages, 6.8.1
avoiding errors, 6.8.3.4
comparison with nested transactions, 6.8.2.1
controlling, 6.8.3
in PL/SQL, 6.8
SQL%ROWCOUNT attribute, 6.2.1.1.4
autonomous triggers
using, 6.8.4
AUTONOMOUS_TRANSACTION pragma
defining, 6.8.2
links to examples, 13
syntax, 13
avoiding SQL injection, 7.4

B

bags
simulating with nested tables, 5.2
basic loops, 4.3.1
BEFORE clause
of CREATE TRIGGER, 14
BEFORE triggers, 14
complex security authorizations, 9.12.3.7
correlation names and, 9.5.1
derived column values, 9.12.3.9
specifying, 9.4.3
BEGIN
start of executable PL/SQL block, 13
syntax, 13
BETWEEN clause
FORALL, 13
BETWEEN comparison operator, 2.6.3.3.3
expressions, 13
BFILE data type, 3.2.1
BINARY_DOUBLE data type, 3.1.1.3
BINARY_FLOAT and BINARY_DOUBLE data types
for computation-intensive programs, 12.7
BINARY_FLOAT data type, 3.1.1.3
BINARY_INTEGER data type
See PLS_INTEGER data type
bind arguments
avoiding SQL injection with, 7.4.2.1
bind variables, 1.2.4.4
binding
bulk, 12.6
variables, 12.6
BLOB data type, 3.2.2
block
anonymous
definition of, 1.2.1
blocks
links to examples, 13
PL/SQL
syntax, 13
BODY
with SQL CREATE PACKAGE statement, 10.1
body
cursor, 10.12
package, 10.6
BODY clause
of ALTER PACKAGE, 14
Boolean
assigning values, 2.5.1
expressions, 2.6.4
literals, 2.1.3.4
BOOLEAN data type, 3.1.3
bounded collections, 5.1
bulk
fetches, 12.6.2.1
returns, 12.6.2.3
bulk binding, 12.6
limitations, 12.6
BULK clause
with COLLECT, 12.6.2
BULK COLLECT clause, 12.6.2
checking whether no results are returned, 12.6.2
FETCH, 13
retrieving DML results, 12.6.2.3
retrieving query results with, 12.6.2
returning multiple rows, 6.3.2
SELECT INTO, 13
using LIMIT clause, 12.6.2, 12.6.2.2
using ROWNUM pseudocolumn, 12.6.2
using SAMPLE clause, 12.6.2
using with FORALL statement, 12.6.2.4
BULK COLLECT INTO clause
in EXECUTE IMMEDIATE statement, 13
in RETURNING INTO clause, 13
bulk SQL
using to reduce loop overhead, 12.6
BULK_EXCEPTIONS cursor attribute
ERROR_CODE field, 12.6.1.3
ERROR_INDEX field, 12.6.1.3
example, 12.6.1.3
handling FORALL exceptions, 12.6.1.3
using ERROR_CODE field with SQLERRM, 12.6.1.3
BULK_ROWCOUNT cursor attribute
affected by FORALL, 12.6.1.2
by-reference parameter passing, 8.11
by-value parameter passing, 8.11

C

C clause
of CREATE TYPE, 14
of CREATE TYPE BODY, 14
C method
mapping to an object type, 14
call spec. See call specifications
call specification, 10.1
call specifications
in procedures, 14
of CREATE PROCEDURE, 14
of CREATE TYPE, 14
of CREATE TYPE BODY, 14
call stack
AUTHID property and, 8.7
DR and IR units and, 8.7
calls
inter-language, 8.9
resolving subprogram, 8.6
subprograms, 8.4.4
carriage returns, 2.1
CASE expressions, 2.6.5, 2.6.5
overview, 1.2.6.1
case sensitivity
in identifiers, 2.1.2
string literal, 2.1.3.3
CASE statement
links to examples, 13
searched, 4.2.5
syntax, 13
using, 4.2.4
CASE_NOT_FOUND exception, 11.4
CHAR data type, 3.1.2.1
differences with VARCHAR2, 3.1.2.1
character literals, 2.1.3.2
character sets
PL/SQL, 2.1
CHARACTER subtype, 3.1.2.1.1
character values
comparing, 3.1.2.1.4
CHECK constraint
triggers and, 9.12.2, 9.12.3.6
clauses
BULK COLLECT, 12.6.2
LIMIT, 12.6.2.2
CLOB data type, 3.2.3
CLOSE statement
disables cursor, 6.2.2.5
disabling cursor variable
closing, 6.5.5.4
links to examples, 13
syntax, 13
collating sequence, 2.6.4.2
COLLECT clause
with BULK, 12.6.2
collection exceptions
when raised, 5.11
collection methods, 5.10
syntax, 13
COLLECTION_IS_NULL exception, 11.4
collections, 5
allowed subscript ranges, 5.6
applying methods to parameters, 5.10.9
assigning, 5.7
avoiding exceptions, 5.11
bounded, 5.1
bulk binding, 5.14.5, 12.6
choosing the type to use, 5.2
comparing, 5.8
constructors, 5.5
declaring variables, 5.4
defining types, 5.3
DELETE method, 5.10.8
dense, 5.1
element types, 5.3
EXISTS method, 5.10.1
EXTEND method, 5.10.6
initializing, 5.5
links to examples, 13, 13
multidimensional, 5.9
NEXT method, 5.10.5
operators to transform nested tables, 5.7
overview, 1.2.5.4
PRIOR method, 5.10.5
referencing, 5.5
referencing elements, 5.6
scope, 5.3
sparse, 5.1
syntax, 13
testing for null, 5.8
three types of, 5.1
TRIM method, 5.10.7
unbounded, 5.1
column aliases
expression values in a cursor loop, 6.3.6
when needed, 2.2.6.2
columns
accessing in triggers, 9.5.1
generating derived values with triggers, 9.12.3.9
listing in an UPDATE trigger, 9.4.2.2, 9.5.1.4
COMMENT clause
using with transactions, 6.7.1
comments
in PL/SQL, 2.1.4
links to examples, 13
syntax, 13
COMMIT statement, 6.7.1
comparison functions
MAP, 14, 14
ORDER, 14, 14
comparison operators, 6.1.5.1
comparisons
of character values, 3.1.2.1.4
of expressions, 2.6.4
of null collections, 5.8
operators, 2.6.3.3
PL/SQL, 2.6
with NULLs, 2.6.6
COMPILE clause
of ALTER PACKAGE, 14
of ALTER PROCEDURE, 14
of ALTER TRIGGER, 14
of ALTER TYPE, 14
compiler parameters
and REUSE SETTINGS clause, 1.3.2, 1.3.2
PL/SQL, 1.3.2
compiler switches
dropping and preserving, 14, 14, 14, 14, 14
compiling
conditional, 2.9
composite types, 5
composite variables, 5
Compound triggers, 9.4.8
compound triggers
creating, 14
concatenation operator, 2.6.1
treatment of nulls, 2.6.6.3
conditional compilation, 2.9
availability for previous Oracle database releases, 2.9.1
control tokens, 2.9.1.1
examples, 2.9.2.1
inquiry directives, 2.9.1.4
limitations, 2.9.3
PLSQL_LINE flag, 2.9.1.5
PLSQL_UNIT flag, 2.9.1.5
restrictions, 2.9.3
static constants, 2.9.1.6.4
using static expressions with, 2.9.1.6
using with DBMS_DB_VERSION, 2.9.1.7
using with DBMS_PREPROCESSOR, 2.9.2.2
conditional control, 4.2
conditional predicates
trigger bodies, 9.5, 9.5.1.4
conditional statement
guidelines, 4.2.6
CONSTANT
for declaring constants, 1.2.4.3, 2.2.2
constants
declaring, 1.2.4.3, 2.2, 2.2.2
links to examples, 13, 13
static, 2.9.1.6.4
syntax, 13, 13
understanding PL/SQL, 1.2.4
constraining tables, 9.5.4.4
constraints
NOT NULL, 2.2.4
triggers and, 9.2, 9.12.2
constructor methods
and object types, 14
constructors
collection, 5.5
defining for an object type, 14
user-defined, 14
context
transactions, 6.8.2.2
CONTINUE statement
links to examples, 13
syntax, 13
CONTINUE-WHEN statement, 1.2.6.2
control structures
conditional, 4.2
overview of PL/SQL, 4.1
sequential, 4.4
understanding, 1.2.6
conventions
PL/SQL naming, 2.3
conversions
data type, 3.4
correlated subqueries, 6.4.1
correlation names, 9.4.7
NEW, 9.5.1
OLD, 9.5.1
when preceded by a colon, 9.5.1
COUNT collection method, 5.10.2
COUNT method
collections, 13
CREATE
with PROCEDURE statement, 1.2.7.1
CREATE FUNCTION statement, 14
CREATE PACKAGE statement, 14
CREATE PROCEDURE statement, 1.2.7.1, 14
CREATE statement
packages, 10.1
CREATE statements, 14
triggers on, 14
CREATE TRIGGER statement, 9.4, 14
REFERENCING option, 9.5.1.3
CREATE TYPE BODY statement, 14
CREATE TYPE statement, 14
creating
packages, 10.1
procedures, 1.2.7.1
CURRENT OF clause
with UPDATE, 6.7.7.1
CURRENT_USER
value of AUTHID property, 8.7
CURRVAL
pseudocolumn, 6.1.4.1
cursor attributes
%BULK_EXCEPTIONS, 12.6.1.3
%BULK_ROWCOUNT, 12.6.1.2
%FOUND, 6.2.1.1.1, 6.2.2.6.1
%ISOPEN, 6.2.1.1.2, 6.2.2.6.2
%NOTFOUND, 6.2.1.1.3, 6.2.2.6.3
%ROWCOUNT, 6.2.1.1.4, 6.2.2.6.4
DBMS_SQL package and, 7.3
explicit, 6.2.2.6
syntax, 13
links to examples, 13
native dynamic SQL and, 7.2
SQL, 6.2.1.1
values of, 6.2.2.6.4
cursor declarations
links to examples, 13
syntax, 13
cursor expressions
REF CURSORs, 6.6
restrictions, 6.6
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, 12.11.8
avoiding errors with, 6.5.7
closing, 6.5.5.4
declaring, 6.5.3
defining, 6.5.3
fetching from, 6.5.5.3
links to examples, 13
opening, 6.5.5.1
passing as parameters, 6.5.4
reducing network traffic, 6.5.6
restrictions, 6.5.8
syntax, 13
using as a host variable, 6.5.5.2
CURSOR_ALREADY_OPEN exception, 11.4
cursors
advantages of using cursor variables, 6.5.2
attributes of explicit, 6.2.2.6
attributes of SQL, 6.2.1.1
closing explicit, 6.2.2.5
declaring explicit, 6.2.2.1
definition, 1.2.5.1
explicit, 1.2.5.1, 6.2.2
explicit FOR loops, 6.3.5.2
expressions, 6.6
fetching from, 6.2.2.3
guidelines for implicit, 6.2.1.2
implicit, 1.2.5.1
opening explicit, 6.2.2.2
packaged, 10.12
parameterized, 6.4.2
REF CURSOR variables, 6.5
RETURN clause, 10.12
scope rules for explicit, 6.2.2.1
SYS_REFCURSOR type, 12.11.8
variables, 6.5
CustomDatum Java storage format, 14

D

data abstraction
understanding PL/SQL, 1.2.5
data definition language (DDL)
events and triggers, 14
data manipulation language
triggers and, 9.1.3
data manipulation language (DML)
operations
and triggers, 14
data type conversion
SQL injection and, 7.4.1.3
data types
BFILE, 3.2.1
BLOB, 3.2.2
BOOLEAN, 3.1.3
CHAR, 3.1.2.1
CLOB, 3.2.3
DATE, 3.1.4.1
explicit conversion, 3.4.1
implicit conversion, 3.4.2
INTERVAL DAY TO SECOND, 3.1.4.6
INTERVAL YEAR TO MONTH, 3.1.4.5
LONG, 3.1.2.4
national character, 3.1.2.3
NCHAR, 3.1.2.3.2, 3.1.2.3.3
NCLOB, 3.2.4
NUMBER, 3.1.1.4
PL/SQL
See PL/SQL data types
RAW, 3.1.2.2
REF CURSOR, 6.5.1
ROWID, 3.1.2.5
TABLE, 5.3
TIMESTAMP, 3.1.4.2
TIMESTAMP WITH LOCAL TIME ZONE, 3.1.4.4
TIMESTAMP WITH TIME ZONE, 3.1.4.3
UROWID, 3.1.2.5
VARRAY, 5.3
database character set, 2.1
database events
attributes, 9.13.5
tracking, 9.12.3.11
Database Resident Connection Pool, 10.10.4
database triggers, 1.2.7.2
autonomous, 6.8.4
database triggers. See triggers
databases
events
and triggers, 14
auditing, 14
transparent logging of, 14
DATE data type, 3.1.4.1
datetime
arithmetic, 3.1.4.7
data types, 3.1.4
literals, 2.1.3.5
DAY
data type field, 3.1.4
DB_ROLE_CHANGE system manager event, 9.13.6
DBMS_ALERT package, 10.10.1
DBMS_ASSERT package, 7.4.2.2
DBMS_CONNECTION_CLASS package, 10.10.4
DBMS_DB_VERSION package
using with conditional compilation, 2.9.1.7
DBMS_OUTPUT package
displaying output, 1.2.3
displaying output from PL/SQL, 10.10.2
DBMS_PIPE package, 10.10.3
DBMS_PREPROCESSOR package
using with conditional compilation, 2.9.2.2
DBMS_PROFILE package
gathering statistics for tuning, 12.5.1
DBMS_SQL package, 7.3
upgrade to dynamic SQL, 12.8
DBMS_SQL.TO_NUMBER function, 7.3
DBMS_SQL.TO_REFCURSOR function, 7.3
DBMS_TRACE package
tracing code for tuning, 12.5.2
DBMS_WARNING package
controlling warning messages in PL/SQL, 11.10.3
dbmsupbin.sql script
interpreted compilation, 12.10.5
dbmsupgnv.sql script
for PL/SQL native compilation, 12.10.5
deadlocks
how handled by PL/SQL, 6.7.4
DEBUG clause
of ALTER FUNCTION, 14
of ALTER PACKAGE, 14
of ALTER PROCEDURE, 14
of ALTER TRIGGER, 14
of ALTER TYPE, 14
debugging
triggers, 9.8
DEC
NUMBER subtype, 3.1.1.4
DECIMAL
NUMBER subtype, 3.1.1.4
declarations
collection, 5.4
constants, 1.2.4.3, 2.2.2
cursor variables, 6.5.3
exceptions in PL/SQL, 11.5.1
explicit cursor, 6.2.2.1
PL/SQL functions, 1.2.7
PL/SQL procedures, 1.2.7
PL/SQL subprograms, 1.2.7
restrictions, 2.2.7
using %ROWTYPE, 2.2.6
using DEFAULT, 2.2.3
using NOT NULL constraint, 2.2.4
variables, 1.2.4.1, 2.2
DECLARE
start of declarative part of a PL/SQL block, 13
syntax, 13
DECODE function
treatment of nulls, 2.6.6.4
DEFAULT keyword
for assignments, 2.2.3
DEFAULT option
RESTRICT_REFERENCES, 13
default parameter values, 8.4.3
DEFINE
limitations of use with wrap utility, A.4.3
DEFINER value of AUTHID property, 8.7
definer's rights functions, 14
definer's rights units
See DR units
DELETE method
collections, 5.10.8, 13
DELETE statement
column values and triggers, 9.5.1
triggers for referential integrity, 9.12.3.2, 9.12.3.3
triggers on, 14
delimiters, 2.1.1
dense collections, 5.1
dense nested tables, 5.1.2
dependencies
in stored triggers, 9.6.1
schema objects
trigger management, 9.5.4.2
DETERMINISTIC clause
of CREATE FUNCTION, 14
DETERMINISTIC option
function syntax, 13
dictionary_obj_owner event attribute, 9.13.5
dictionary_obj_owner_list event attribute, 9.13.5
dictionary_obj_type event attribute, 9.13.5
digits of precision, 3.1.1.4
disabled trigger
definition, 9.1.2
disabling
triggers, 9.1.2
displaying output
DBMS_OUTPUT package, 1.2.3
setting SERVEROUTPUT, 10.10.2
DISTINCT row operator, 6.1.3, 6.1.5.3
distributed databases
triggers and, 9.5.4.2
dot notation, 1.2.5.2, B.2
for collection methods, 5.10
for global variables, 4.3.8.3
for package contents, 10.5
DOUBLE PRECISION
NUMBER subtype, 3.1.1.4
DR units
call stack and, 8.7
dynamic SQL statements and, 8.7
name resolution and, 8.7
privilege checking and, 8.7
static SQL statements and, 8.7
DROP PACKAGE BODY statement, 14
DROP statements, 14
triggers on, 14
DROP TRIGGER statement, 9.7
dropping
triggers, 9.7
DUP_VAL_ON_INDEX exception, 11.4
dynamic multiple-row queries, 7.2.2
dynamic SQL, 7
DBMS_SQL package, 7.3
native, 7.2
switching between native dynamic SQL and DBMS_SQL package, 7.3
tuning, 12.8
dynamic SQL statements
AUTHID property and, 8.7

E

element types
collection, 5.3
ELSE clause
using, 4.2.2
ELSIF clause
using, 4.2.3
ENABLE clause
of ALTER TRIGGER, 14
enabled trigger
definition, 9.1.2
enabling
triggers, 9.1.2
END
end of a PL/SQL block, 13
syntax, 13
END IF
end of IF statement, 4.2.1
END LOOP
end of LOOP statement, 4.3.7
error handling
in PL/SQL, 11
overview, 1.2.2
error messages
maximum length, 11.9.4
ERROR_CODE
BULK_EXCEPTIONS cursor attribute field, 12.6.1.3
using with SQLERRM, 12.6.1.3
ERROR_INDEX
BULK_EXCEPTIONS cursor attribute field, 12.6.1.3
evaluation
short-circuit, 2.6.3.2
event attribute functions, 9.13.5
event publication, 9.13
triggering, 9.13
events
attribute, 9.13.5
tracking, 9.12.3.11
EXCEPTION
exception-handling part of a block, 13
syntax in PL/SQL block, 13
exception definition
syntax, 13, 13
exception handlers
OTHERS handler, 11.1
overview, 1.2.2
using RAISE statement in, 11.8, 11.9
WHEN clause, 11.9
EXCEPTION_INIT pragma
links to examples, 13
syntax, 13
using with RAISE_APPLICATION_ERROR, 11.5.4
with exceptions, 11.5.3
exceptions
advantages of PL/SQL, 11.3
branching with GOTO, 11.9.3
catching unhandled in PL/SQL, 11.9.5
continuing after an exception is raised, 11.9.6.1
controlling warning messages, 11.10.2
declaring in PL/SQL, 11.5.1
definition, 13, 13
during trigger execution, 9.5.1.5
handling in PL/SQL, 11
links to examples, 13, 13
list of predefined in PL/SQL, 11.4
locator variables to identify exception locations, 11.9.6.3
OTHERS handler in PL/SQL, 11.9
PL/SQL compile-time warnings, 11.10
PL/SQL error condition, 11.1
PL/SQL warning messages, 11.10.1
predefined in PL/SQL, 11.4
propagation in PL/SQL, 11.7
raise_application_error procedure, 11.5.4
raised in a PL/SQL declaration, 11.9.1
raised in handlers, 11.9.2
raising in PL/SQL, 11.6
raising predefined explicitly, 11.6
raising with RAISE statement, 11.6
redeclaring predefined in PL/SQL, 11.5.5
reraising in PL/SQL, 11.8
retrying a transaction after, 11.9.6.2
scope rules in PL/SQL, 11.5.2
tips for handling PL/SQL errors, 11.9.6
user-defined in PL/SQL, 11.5
using EXCEPTION_INIT pragma, 11.5.3
using the DBMS_WARNING package, 11.10.3
using WHEN and OR, 11.9
WHEN clause, 11.9
EXECUTE IMMEDIATE statement, 7.2.1
links to examples, 13
syntax, 13
EXISTS method
collections, 5.10.1, 13
EXIT statement
early exit of LOOP, 4.3.8.4
links to examples, 13
syntax, 13
using, 4.3.2, 4.3.4
EXIT-WHEN statement, 1.2.6.2
using, 4.3.3, 4.3.5
explicit cursors, 6.2.2
explicit data type conversion, 3.4.1
explicit declarations
cursor FOR loop record, 6.3.5.2
explicit format modelsavoiding SQL injection with, 7.4.2.3
expressions
as default parameter values, 8.4.3
in cursors, 6.4.2
Boolean, 2.6.4
CASE, 2.6.5, 2.6.5
examples, 13
PL/SQL, 2.6
static, 2.9.1.6
syntax, 13
EXTEND method
collections, 5.10.6, 13
external
routines, 8.9
subprograms, 8.9
external functions, 14, 14, 14, 14
external procedures, 14

F

FALSE value, 2.1.3.4
FETCH statement
links to examples, 13
syntax, 13
using explicit cursors, 6.2.2.3
with cursor variable, 6.5.5.3
fetching
across commits, 6.7.7.3
bulk, 12.6.2.1, 12.6.2.1
file I/O, 10.10.6
FINAL clause
of CREATE TYPE, 14, 14
FIRST collection method, 5.10.4, 13
FIRST method
collections, 13
FLOAT
NUMBER subtype, 3.1.1.4
FOR EACH ROW clause, 9.4.6
of CREATE TRIGGER, 14
FOR loops
explicit cursors, 6.3.5.2
nested, 4.3.8.3
FOR UPDATE clause, 6.2.2.2
when to use, 6.7.7.1
FORALL statement
links to examples, 13
syntax, 13
using, 12.6.1
using to improve performance, 12.6.1
using with BULK COLLECT clause, 12.6.2.4
with rollbacks, 12.6.1.1
FORCE clause
of DROP TYPE, 14
FOR-LOOP statement
syntax, 13
using, 4.3.8
formal parameters, 6.4.2
format models
explicitavoiding SQL injection with, 7.4.2.3
forward
references, 2.2.7
forward declaration of subprograms, 8.3
FOUND cursor attribute
explicit, 6.2.2.6.1
implicit, 6.2.1.1.1
function declaration
syntax, 13
function result cache, 8.12
functions
analytic
user-defined, 14
avoiding run-time compilation, 14
changing the declaration of, 14
changing the definition of, 14
data type of return value, 13, 14
declaration, 13
examples, 14
executing
from parallel query processes, 14
external, 14, 14, 14, 14
in PL/SQL, 8
invoking, 8.1
links to examples, 13
partitioning
among parallel query processes, 14
pipelined, 12.11
privileges executed with, 14, 14
recompiling invalid, 14
re-creating, 14
removing from the database, 14
RETURN statement, 8.2
returning collections, 14
returning results iteratively, 14
schema executed in, 14, 14
specifying schema and user privileges for, 14
SQL in PL/SQL, 2.8
stored, 14
table, 12.11.1, 14
user-defined
aggregate, 14
using a saved copy, 14

G

global identifiers, 2.4
globalization
associative arrays and, 5.1.1
GOTO statement
branching into or out of exception handler, 11.9.3
label, 4.4.1
links to examples, 13
overview, 1.2.6.3
syntax, 13
using, 4.4.1
grantee event attribute, 9.13.5
GROUP BY clause, 6.1.3

H

handlers
exception in PL/SQL, 11.1
handling errors
PL/SQL, 11
handling exceptions
PL/SQL, 11
raised in as PL/SQL declaration, 11.9.1
raised in handler, 11.9.2
using OTHERS handler, 11.9
handling of nulls, 2.6.6
hash tables
simulating with associative arrays, 5.2
hiding PL/SQL source code
PL/SQL source code
host arrays
bulk binds, 12.6.2.5
HOUR
data type field, 3.1.4
HTF package, 10.10.5
HTP package, 10.10.5
hypertext markup language (HTML), 10.10.7
hypertext transfer protocol (HTTP), 1.1.6
UTL_HTTP package, 10.10.7

I

identifiers
global, 2.4
local, 2.4
quoted, 2.1.2.3
scope and visibility of, 2.4
syntax and semantics of, 2.1.2
IF statement, 4.2
ELSE clause, 4.2.2
links to examples, 13, 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-ELSIF statement
using, 4.2.3
implicit cursors
guidelines, 6.2.1.2
See SQL cursors
implicit data type conversion, 3.4.2
implicit data type conversions
performance, 12.3.1.6
implicit declarations
FOR loop counter, 4.3.8.3
IN comparison operator, 2.6.3.3.4
IN OUT parameter mode
subprograms, 8.4.2.3
IN parameter mode
subprograms, 8.4.2.1
incomplete object types, 14
creating, 14
INDEX BY
collection definition, 13
index-by tables
See associative arrays
INDICES OF clause
FORALL, 13
with FORALL, 12.6.1
infinite loops, 4.3.1
initialization
collections, 5.5
package, 10.6
using DEFAULT, 2.2.3
variable, 2.5
initialization parameters
PL/SQL compilation, 1.3.2
injection, SQL, 7.4.1.2
inline LOB locators, 3.2
INLINE pragma
syntax, 13
Inlining subprograms, 12.1
input, 1.2.3
input-output packages, 1.2.3
INSERT statement
column values and triggers, 9.5.1
triggers on, 14
with a record variable, 5.14.2
instance_num event attribute, 9.13.5
INSTANTIABLE clause
of CREATE TYPE, 14
INSTEAD OF clause
of CREATE TRIGGER, 14
INSTEAD OF triggers, 9.4.5, 14
on nested table view columns, 9.5.1.2
INT
NUMBER subtype, 3.1.1.4
INTEGER
NUMBER subtype, 3.1.1.4
inter-language calls, 8.9
interpreted compilation
dbmsupbin.sql script, 12.10.5
recompiling all PL/SQL modules, 12.10.5
INTERSECT set operator, 6.1.5.2
interval
arithmetic, 3.1.4.7
INTERVAL DAY TO SECOND data type, 3.1.4.6
INTERVAL YEAR TO MONTH data type, 3.1.4.5
intervals
data types, 3.1.4
INTO
SELECT INTO statement, 13
INTO clause
with FETCH statement, 6.5.5.3
INTO list
using with explicit cursors, 6.2.2.3
INVALID_CURSOR exception, 11.4
INVALID_NUMBER exception, 11.4
invoker's rights
altering for an object type, 14
defining for a function, 14
defining for a package, 14
defining for a procedure, 14
defining for an object type, 14
invoker's rights functions
defining, 14
invoker's rights subprograms
name resolution in, 8.7.4
invoker's rights units
See IR units
invoking Java stored procedures, 8.9
IR units
call stack and, 8.7
dynamic SQL statements and, 8.7
name resolution and, 8.7
privilege checking and, 8.7
static SQL statements and, 8.7
IS NULL comparison operator, 2.6.3.3.1
expressions, 13
is_alter_column event attribute, 9.13.5
ISOPEN cursor attribute
explicit, 6.2.2.6.2
implicit, 6.2.1.1.2

J

JAVA
use for invoking external subprograms, 8.9
Java
call specs, 8.9
methods
return type of, 14
storage formats
CustomDatum, 14
SQLData, 14
JAVA clause
of CREATE TYPE, 14
of CREATE TYPE BODY, 14
Java methods
mapping to an object type, 14
Java stored procedures
invoking from PL/SQL, 8.9

K

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

L

labels
block structure, 13
exiting loops, 4.3.6
GOTO statement, 4.4.1
loops, 4.3.6
syntax, 13
LANGUAGE
use for invoking external subprograms, 8.9
LANGUAGE clause
of CREATE PROCEDURE, 14
of CREATE TYPE, 14
of CREATE TYPE BODY, 14
language elements
of PL/SQL, 13
large object (LOB) data types, 3.2
LAST collection method, 5.10.4, 13
LAST method
collections, 13
LEVEL
pseudocolumn, 6.1.4.2
lexical units
PL/SQL, 2.1
LIKE comparison operator, 2.6.3.3.2
expressions, 13
LIMIT clause
FETCH, 13
using to limit rows for a Bulk FETCH operation, 12.6.2.2
LIMIT collection method, 5.10.3
LIMIT method
collections, 13
limitations
bulk binding, 12.6
of PL/SQL programs, C
PL/SQL compiler, C
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 data type, 2.1.3.1
numeric, 2.1.3.1
numeric data types, 2.1.3.1
string, 2.1.3.3
syntax, 13
types of PL/SQL, 2.1.3
LNPLS99980|Using PL/SQL to Create Server Pages, 2.11
LOB (large object) data types, 3.2
use in triggers, 9.5.1.1
LOB locators, 3.2
local identifiers, 2.4
locator variables
used with exceptions, 11.9.6.3
LOCK TABLE statement
locking a table, 6.7.7.2
locks
modes, 6.7
overriding, 6.7.7
transaction processing, 6.7
using FOR UPDATE clause, 6.7.7.1
logical operators, 2.6.3
logical rowids, 3.1.2.5
LOGIN_DENIED exception, 11.4
LOGOFF database event
triggers on, 14
LOGON database event
triggers on, 14
LONG data type, 3.1.2.4
maximum length, 3.1.2.4
use in triggers, 9.5.4.3
LOOP statement, 4.3
links to examples, 13
overview, 1.2.6.2
syntax, 13
using, 4.3.1
loops
dynamic ranges, 4.3.8.2
exiting using labels, 4.3.6
implicit declaration of counter, 4.3.8.3
iteration, 4.3.8.1
labels, 4.3.6
reversing the counter, 4.3.8
scope of counter, 4.3.8.3

M

MAP MEMBER clause
of ALTER TYPE, 14
of CREATE TYPE, 14, 14
MAP methods
defining for a type, 14
specifying, 14
maximum precision, 3.1.1.4
maximum size
CHAR value, 3.1.2.1
LONG value, 3.1.2.4
Oracle error message, 11.9.4
RAW value, 3.1.2.2
MEMBER clause
of ALTER TYPE, 14
of CREATE TYPE, 14
membership test, 2.6.3.3.4
memory
avoid excessive overhead, 12.3.2
Method 4, 7.3
methods
collection, 5.10
overriding a method a supertype, 14
preventing overriding in subtypes, 14
static, 14
without implementation, 14
MINUS set operator, 6.1.5.2
MINUTE
data type field, 3.1.4
modularity
packages, 10.3
MONTH
data type field, 3.1.4
multidimensional collections, 5.9
multiline comments, 2.1.4.2
multiple-row queries
dynamic, 7.2.2
MULTISET EXCEPT operator, 5.7
MULTISET INTERSECT operator, 5.7
MULTISET UNION operator, 5.7
mutating table
definition, 9.5.4.4
mutating tables
trigger restrictions, 9.5.4.4

N

NAME
for invoking external subprograms, 8.9
NAME parameter
transactions, 6.7.6
name resolution, 2.3.3
AUTHID property and, 8.7
differences between PL/SQL and SQL, B.3
DR units and, 8.7
global and local variables, B.1
inner capture in DML statements, B.5
IR units and, 8.7
overriding in IR subprograms, 8.7.4
qualified names and dot notation, B.2
qualifying references to attributes and methods, B.5
understanding, B.1
understanding capture, B.4
names
explicit cursor, 6.2.2.1
qualified, 2.3
savepoint, 6.7.3
variable, 2.3.1
naming conventions
PL/SQL, 2.3
national character data types, 3.1.2.3
national character set, 2.1
native compilation
dbmsupgnv.sql script, 12.10.5
dependencies, 12.10.3
how it works, 12.10.2
invalidation, 12.10.3
modifying databases for, 12.10.5
revalidation, 12.10.3
setting up databases, 12.10.4
utlrp.sql script, 12.10.5
native dynamic SQL, 7.2
NATURAL
BINARY_INTEGER subtype, 3.1.1.1
NATURALN
BINARY_INTEGER subtype, 3.1.1.1
NCHAR data type, 3.1.2.3.2, 3.1.2.3.3
NCLOB data type, 3.2.4
nested cursors
using, 6.6
NESTED TABLE clause
of CREATE TRIGGER, 14
nested tables, 5.1.2
characteristics of, 5.1
compared to associative arrays, 5.2.1
compared to varrays, 5.2.2
creating, 14
dropping the body of, 14
dropping the specification of, 14
modifying, 14
of scalar types, 14
syntax, 13
transforming with operators, 5.7
update in a view, 14
nesting
FOR loops, 4.3.8.3
record, 5.12
NEW correlation name, 9.5.1
new features, Preface
NEXT method
collections, 5.10.5, 13
NEXTVAL
pseudocolumn, 6.1.4.1
NLS parameters
SQL injection and, 7.4.1.3
NLS_COMP initialization parameter
associative arrays and, 5.1.1
NLS_LENGTH_SEMANTICS initialization parameter
setting with ALTER SYSTEM, 14
NLS_SORT initialization parameter
associative arrays and, 5.1.1
NO_DATA_FOUND exception, 11.4
NOCOPY compiler hint
for tuning, 12.9
restrictions on, 12.9
NOT FINAL clause
of CREATE TYPE, 14
NOT INSTANTIABLE clause
of CREATE TYPE, 14, 14
NOT logical operator
treatment of nulls, 2.6.6.1
NOT NULL
declaration, 13, 13
NOT NULL constraint
restriction on explicit cursors, 6.2.2.1
using in collection declaration, 5.4
using in variable declaration, 2.2.4
NOT NULL option
record definition, 13
NOT_LOGGED_ON exception, 11.4
notation
positional and named, 8.4.4
NOTFOUND cursor attribute
explicit, 6.2.2.6.3
implicit, 6.2.1.1.3
NOWAIT parameter
using with FOR UPDATE, 6.7.7.1
null handling, 2.6.6
NULL statement
links to examples, 13
syntax, 13
using, 4.4.3
NULL value, 2.1.3.4
dynamic SQL and, 7.2.1
NUMBER data type, 3.1.1.4
range of literals, 2.1.3.1
range of values, 3.1.1.4
NUMERIC
NUMBER subtype, 3.1.1.4
numeric literals, 2.1.3.1
PL/SQL data types, 2.1.3.1
NVL function
treatment of nulls, 2.6.6.4

O

obfuscating PL/SQL source code
See wrapping PL/SQL source code
object identifiers
specifying, 14
object types
adding methods to, 14
adding new member subprograms, 14
allowing object instances of, 14
allowing subtypes, 14
and subtypes, 14
and supertypes, 14
bodies
creating, 14
re-creating, 14
SQL examples, 14
compiling the specification and body, 14
creating, 14, 14
defining member methods of, 14
disassociating statistics types from, 14
dropping methods from, 14
dropping the body of, 14
dropping the specification of, 14
function subprogram
declaring, 14
function subprograms, 14, 14
handling dependent types, 14
incomplete, 14
inheritance, 14
invalidating dependent types, 14
MAP methods, 14
ORDER methods, 14
overview, 1.2.5.6
privileges, 14
procedure subprogram
declaring, 14
procedure subprograms, 14, 14
root, 14
SQL examples, 14
static methods of, 14
subtypes, 14
top-level, 14
user-defined
creating, 14
using with invoker's-rights subprograms, 8.7.7
values
comparing, 14, 14, 14
OBJECT_VALUE pseudocolumn, 9.5.2
objects. See object types or database objects
OLD correlation name, 9.5.1
ON DATABASE clause
of CREATE TRIGGER, 14
ON NESTED TABLE clause
of CREATE TRIGGER, 14
ON SCHEMA clause
of CREATE TRIGGER, 14
OPEN statement
explicit cursors, 6.2.2.2
links to examples, 13
syntax, 13
OPEN-FOR statement, 6.5.5.1
links to examples, 13
syntax, 13
OPEN-FOR-USING statement
syntax, 13
operators
comparison, 2.6.3.3
logical, 2.6.3
precedence, 2.6.2
relational, 2.6.3.3
optimizing
PL/SQL programs, 12.1
OR keyword
using with EXCEPTION, 11.9
OR REPLACE clause
of CREATE FUNCTION, 14
of CREATE PACKAGE, 14
of CREATE PACKAGE BODY, 14
of CREATE PROCEDURE, 14
of CREATE TRIGGER, 14
of CREATE TYPE, 14
of CREATE TYPE BODY, 14
ora_dictionary_obj_owner event attribute, 9.13.5
ora_dictionary_obj_owner_list event attribute, 9.13.5
ora_dictionary_obj_type event attribute, 9.13.5
ora_grantee event attribute, 9.13.5
ora_instance_num event attribute, 9.13.5
ora_is_alter_column event, 9.13.5
ora_is_creating_nested_table event attribute, 9.13.5
ora_is_drop_column event attribute, 9.13.5
ora_is_servererror event attribute, 9.13.5
ora_login_user event attribute, 9.13.5
ora_privileges event attribute, 9.13.5
ora_revokee event attribute, 9.13.5
ora_server_error event attribute, 9.13.5
ora_sysevent event attribute, 9.13.5
ora_with_grant_option event attribute, 9.13.5
ORDER MEMBER clause
of ALTER TYPE, 14
of CREATE TYPE BODY, 14
ORDER methods
defining for a type, 14
specifying, 14
order of evaluation, 2.6.2
OTHERS clause
exception handling, 13
OTHERS exception handler, 11.1, 11.9
OUT parameter mode
subprograms, 8.4.2.2
outlines
assigning to a different category, 14
rebuilding, 14
renaming, 14
out-of-line LOB locators, 3.2
output, 1.2.3
overloading
guidelines, 8.5.1
packaged subprograms, 10.7
restrictions, 8.5.2
subprogram names, 8.5
OVERRIDING clause
of ALTER TYPE, 14
of CREATE TYPE, 14

P

PACKAGE
with SQL CREATE statement, 10.1
package bodies
creating, 14
re-creating, 14
removing from the database, 14
PACKAGE BODY
with SQL CREATE statement, 10.1
packaged cursors, 10.12
packaged procedures
dropping, 14
packages
advantages, 10.3
avoiding run-time compilation, 14
bodiless, 10.4
body, 10.1, 10.6
call specification, 10.1
contents of, 10.2
creating, 10.1, 14
cursor specifications, 10.12
cursors, 10.12
disassociating statistics types from, 14
dot notation, 10.5
examples of features, 10.7
global variables, 10.7
guidelines for writing, 10.11
hidden declarations, 10.1
initializing, 10.6
invoker's rights, 14
invoking subprograms, 10.5
m