Skip Headers
Oracle® Database PL/SQL Language Reference
11g Release 2 (11.2)

Part Number E10472-05
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

$$PLSQL_LINE inquiry directive, 2.10.1.4.1
$$PLSQL_UNIT inquiry directive, 2.10.1.4.1
% wildcard character, 2.7.5.3
%BULK_EXCEPTIONS cursor attribute, 12.8.1.2
%BULK_ROWCOUNT cursor attribute, 12.8.1.3
%FOUND cursor attribute
for implicit cursor, 6.4.1.2
for named cursor, 6.4.2.6.2
%ISOPEN cursor attribute
for implicit cursor, 6.4.1.1
for named cursor, 6.4.2.6.1
%NOTFOUND cursor attribute
for implicit cursor, 6.4.1.3
for named cursor, 6.4.2.6.3
%ROWCOUNT cursor attribute
for implicit cursor, 6.4.1.4
for named cursor, 6.4.2.6.4
%ROWTYPE attribute
column alias and, 6.4.2.7
explicit cursor and, 6.4.2.7
initial value and, 2.3.6
overview of, 2.3.6
syntax of, 13
%TYPE attribute
initial value and, 2.3.5
NOT NULL constraint and, 2.3.5
overview of, 2.3.5
syntax of, 13
_ wildcard character, 2.7.5.3

A

Abstract Data Type (ADT)
creating, 14
editioned, 14
for use in any schema, 8.7.7
what it is, 1.2.5.5
accent-insensitive comparison, 2.7.5.1.3
ACCESS_INTO_NULL exception, 11.4
actual parameter
of explicit cursor, 6.4.2.8
of subprogram
notation for, 8.4.5
passed by reference, 8.4.2
passed by value, 8.4.2
what it is, 8.4.1
ADT
See Abstract Data Type (ADT)
AFTER trigger
what it is, 9.1.1
when to use, 9.3.3
AL16UTF16 encoding, 2.1.2
alerting an application, 10.11.1
aliasing, subprogram parameter
bulk binds and, 12.8.2.6
NOCOPY hint and, 8.11
ALTER FUNCTION statement, 14
ALTER LIBRARY statement, 14
ALTER PACKAGE statement, 14
ALTER PROCEDURE statement, 14
ALTER TRIGGER statement, 14
ALTER TYPE statement, 14
AND operator, 2.7.3
anonymous block
AUTHID property and, 8.7
what it is, 1.2.1
apostrophe inside string literal, 2.2.3.3
architecture of PL/SQL, 1.3
array
associative
See associative array
variable-size
See variable-size array
assigment of value
to variable, 2.6
assignment of value
to collection, 5.6
to collection of records, 5.19
to record, 5.13
assignment statement
in general, 2.6.1
syntax of, 13
associative array
characteristics of, 5.1
in general, 5.1.1
NLS parameters and, 5.1.1
subscript range for, 5.5
syntax of, 13
atomic (lexical) unit, 2.2
attribute
%ROWTYPE
column alias and, 6.4.2.7
explicit cursor and, 6.4.2.7
initial value and, 2.3.6
overview of, 2.3.6
syntax of, 13
%TYPE
initial value and, 2.3.5
NOT NULL constraint and, 2.3.5
overview of, 2.3.5
syntax of, 13
of cursor variable, 6.4.2.6
of explicit cursor, 6.4.2.6
of implicit cursor
in general, 6.4.1
native dynamic SQL and, 7.2
AUTHID property, 8.7
autonomous transaction, 6.10
autonomous trigger, 6.10.6
AUTONOMOUS_TRANSACTION pragma
in compound trigger, 9.3.7.4
syntax of, 13

B

bag data structure
See nested table
base type, 3.1
basic LOOP statement, 13
BEFORE trigger
package variables and, 9.3.3
what it is, 9.1.1
when to use, 9.3.3
BETWEEN operator, 2.7.5.4
BFILE data type, 3.3.1
binary string
LONG RAW, 3.2.2.4
RAW, 3.2.2.2
BINARY_DOUBLE data type
for computation-intensive programs, 12.9
in general, 3.2.1.3
tuning code and, 12.4.7.2
BINARY_FLOAT data type
for computation-intensive programs, 12.9
in general, 3.2.1.3
tuning code and, 12.4.7.2
BINARY_INTEGER data type
See PLS_INTEGER data type
bind argument
avoiding SQL injection with, 7.4.2.1
placeholder for
See placeholder for bind argument
binding variables, 12.8
blank-padding
CHAR and VARCHAR2 strings, 3.2.2.1.3
NCHAR strings, 3.2.2.3.1
BLOB data type, 3.3.2
block syntax, 13
BOOLEAN data type, 3.2.3
BOOLEAN expression, 2.7.6
BOOLEAN literal, 2.2.3.4
BOOLEAN static expression, 2.10.1.5.2
BOOLEAN variable, 2.6.4
bounded collection, 5.1
built-in function
See SQL function
BULK COLLECT clause
in general, 6.5.2
tuning and, 12.8.2
bulk SQL for tuning loop, 12.8
byte string
LONG RAW, 3.2.2.4
RAW, 3.2.2.2
BYTE unit, 3.2.2.1

C

C subprogram, 8.9
cache, function result, 8.12
calculated column, 6.4.2.7
call stack, AUTHID property and, 8.7
capture, B.4
cascading triggers, 9.4
CASE expression
searched, 2.7.7.2
simple, 2.7.7.1
case sensitivity
in character comparison, 2.7.5.1.3
in character literal, 2.2.3.2
in database character set, 2.1.1
in identifier, 2.2.2
in keyword, D
in reserved word, D
in string literal, 2.2.3.3
LIKE operator and, 2.7.5.3
CASE statement
overview of, 4.2
searched, 4.2.5
simple
compared to IF THEN ELSIF statement, 4.2.3
in general, 4.2.4
syntax of, 13
CASE_NOT_FOUND exception, 11.4
case-insensitive comparison, 2.7.5.1.3
CHAR data type
compared to VARCHAR2, 3.2.2.1
in general, 3.2.2.1
CHAR literal, 2.2.3.2
CHAR unit, 3.2.2.1
character data types, 3.2.2
character set
database, 2.1.1
national, 2.1.2
character string
fixed-length
CHAR, 3.2.2.1
VARCHAR2, 3.2.2.1
national, 3.2.2.3
variable-length
LONG, 3.2.2.4
NVARCHAR2, 3.2.2.3.2
RAW, 3.2.2.2
VARCHAR2, 3.2.2.1
CHARACTER subtype, 3.2.2.1.1
CLOB data type
comparison operator and, 2.7.5
in general, 3.3.3
CLOSE statement, 13
collating sequence, 2.7.5.1.3
collection
constructor for, 5.4
cursor variable and, 6.7.6
retrieving query results into, 12.8.2
subscript range for, 5.5
syntax of, 13
what it is, 5
collection method
for parameter, 5.9
invalid subscript for, 5.10
syntax of, 13
what it is, 5.9
COLLECTION_IS_NULL exception, 11.4
column alias
in cursor FOR LOOP, 6.5.3.3
in explicit cursor, 6.4.2.7
comment
in general, 2.2.4
nested, 2.2.4.2
syntax of, 13
COMMIT statement
FOR UPDATE cursor and, 6.9.6.3
in autonomous transaction, 6.10.5.2
in general, 6.9.1
comparison
of collections, 5.7
of records, 5.14
comparison operator
cursor variable and, 6.7.6
in general, 2.7.5
compatible data type, 3.5.2
compilation
conditional, 2.10
for native execution, 12.12
interpreted, 12.12.5
compilation parameter
displaying value of, 2.10.1.4.1
in general, 1.3.2
predefined inquiry directive for, 2.10.1.4.1
compiler directive
See pragma
compile-time warning
in general, 11.1
tuning code and, 12.5.4
composite variable, 5
compound trigger, 9.3.7
computation-intensive program, 12.9
concatenation operator (||), 2.7.1
concurrent transactions, 6.10.5.4
conditional compilation, 2.10
conditional compilation directive
error, 2.10.1.3
in general, 2.10.1
inquiry, 2.10.1.4
restrictions on, 2.10.4
selection, 2.10.1.2
conditional predicate, 9.3.8.1.4
conditional selection statement, 4.2
conditional trigger, 9.3.6
Connection Pool, 10.11.4
constant
declaration
overview of, 2.3.2
syntax of, 13
initial value of, 2.3.3
predefined, 3.2.1.3
static
in DBMS_DB_VERSION package, 2.10.1.5.5
in general, 2.10.1.5.4
constrained subtype, 3.1
constraint, NOT NULL
See NOT NULL constraint
constructor
for collection, 5.4
for nested table, 5.4
for variable-size array, 5.4
context of transaction, 6.10.2
CONTINUE statement
in general, 4.3.4
syntax of, 13
CONTINUE WHEN statement
in general, 4.3.5
syntax of, 13
control statement, 4.1
control token, 2.10.1.1
conversion
See data type conversion
correlated subquery, 6.6
COUNT method, 5.9.2
counter, loop, 4.3.7.1
CPU overhead, avoiding, 12.4
CREATE FUNCTION statement, 14
CREATE LIBRARY statement, 14
CREATE PACKAGE statement, 14
CREATE TRIGGER statement, 14
CREATE TYPE BODY statement, 14
CREATE TYPE statement, 14
crossedition trigger, 9.1.1
CURRENT OF clause
FOR UPDATE cursor and, 6.9.6.2
ROWID pseudocolumn instead of, 6.9.6.3
what it is, 6.9.6.2
CURRENT_USER, 8.7.1
CURRVAL pseudocolumn, 6.3.1
cursor
explicit
See explicit cursor
FOR UPDATE
unusable after COMMIT or ROLLBACK, 6.9.6.3
what it is, 6.9.6.2
implicit
See implicit cursor
named, 6.4.2.6
nested, 6.8
what it is, 6.4
cursor attribute
DBMS_SQL package and, 7.3
for implicit cursor
in general, 6.4.1
native dynamic SQL and, 7.2
SQL%BULK_EXCEPTIONS, 12.8.1.2
SQL%BULK_ROWCOUNT, 12.8.1.3
SQL%FOUND, 6.4.1.2
SQL%ISOPEN, 6.4.1.1
SQL%NOTFOUND, 6.4.1.3
SQL%ROWCOUNT, 6.4.1.4
for named cursor
%FOUND, 6.4.2.6.2
%ISOPEN, 6.4.2.6.1
%NOTFOUND, 6.4.2.6.3
%ROWCOUNT, 6.4.2.6.4
in general, 6.4.2.6
cursor expression, 6.8
cursor FOR LOOP statement
in general, 6.5.3
syntax of, 13
cursor parameter, 6.4.2.8
cursor variable
attributes of, 6.4.2.6
declaration syntax of, 13
in general, 6.7
syntax of attribute of, 13
tuning and, 12.10
CURSOR_ALREADY_OPEN exception, 11.4

D

d or D in numeric literal, 2.2.3.1
data abstraction, 1.2.5
data definition language statement
See DDL statement
data type
compatible, 3.5.2
object
See Abstract Data Type (ADT)
of character literal, 2.2.3.2
of string literal, 2.2.3.3
user-defined
See Abstract Data Type (ADT)
what it determines, 3
data type conversion
explicit, 3.5.1
implicit
in general, 3.5.2
minimizing, 12.4.6
in general, 3.5
SQL injection and, 7.4.1.3
database character set, 2.1.1
database link, IR, 8.7.6
Database Resident Connection Pool, 10.11.4
DATE data type, 3.2.4.1
datetime arithmetic, 3.2.4.7
datetime data types, 3.2.4
datetime literal, 2.2.3.5
DAY field, 3.2.4
DBMS_ALERT package, 10.11.1
DBMS_ASSERT package, 7.4.2.2
DBMS_CONNECTION_POOL package, 10.11.4
DBMS_DB_VERSION package, 2.10.1.5.5
DBMS_OUTPUT package, 10.11.2
DBMS_PARALLEL_EXECUTE package, 12.14
DBMS_PIPE package, 10.11.3
DBMS_PREPROCESSOR package, 2.10.3
DBMS_PROFILE package, 12.7.1
DBMS_SQL package
in general, 7.3
switching to native dynamic SQL from, 7.3
DBMS_SQL.TO_NUMBER function, 7.3.2
DBMS_SQL.TO_REFCURSOR function, 7.3.1
DBMS_TRACE package, 12.7.2
DBMS_WARNING package, 11.2
dbmsupgin.sql script, 12.12.5
dbmsupgnv.sql script, 12.12.5
DDL statement
dynamic SQL for, 7
in trigger, 6.10.6
subprogram side effects and, 8.10
deadlock
autonomous transaction and, 6.10.5.4
implicit rollback and, 6.9.4
DEC subtype, 3.2.1.4
DECIMAL subtype, 3.2.1.4
declaration, 2.3
DEFINE
binding category, 12.8
wrap utility and, A.4.3
DEFINER, 8.7.1
definer's rights unit
See DR unit
DELETE method, 5.9.8
DELETE statement
PL/SQL extension to, 13
See also DML statement
DELETING conditional predicate, 9.3.8.1.4
delimiter
in general, 2.2.1
user-defined, 2.2.3.3
dense collection, 5.1
Descriptive Intermediate Attributed Notation for Ada (DIANA), C
digit, 2.1.1
directive
compiler
See pragma
error, 2.10.1.3
inquiry, 2.10.1.4
selection, 2.10.1.2
See also conditional compilation directive
disabled trigger, 9.1.3
disabling compile-time warnings, 11.1
DML statement
FORALL statement and, 12.8.1
implicit cursor for, 6.4.1
inner capture in, B.5
inside pipelined table function, 12.13.9
on pipelined table function, 12.13.10
repeating efficiently, 12.8.1
what it is, Preface
dot notation
for collection method, 5.9
for pseudocolumn, 6.3.1
for qualified name, 2.4
for record field, 5
name resolution and, B.2
DOUBLE PRECISION subtype, 3.2.1.4
double quotation mark ("), 2.1.1
DR unit
call stack and, 8.7
dynamic SQL and, 8.7
name resolution and, 8.7
privilege checking and, 8.7
SET ROLE command and, 8.7.2
static SQL and, 8.7
See also AUTHID property
DROP FUNCTION statement, 14
DROP LIBRARY statement, 14
DROP PACKAGE statement, 14
DROP PROCEDURE statement, 14
DROP TRIGGER statement, 14
DROP TYPE BODY statement, 14
DUP_VAL_ON_INDEX exception, 11.4
dynamic SQL
AUTHID property and, 8.7
native
in general, 7.2
switching to DBMS_SQL package from, 7.3
placeholder for bind argument in
EXECUTE IMMEDIATE statement and, 7.2.1
repeated, 7.2.3
tuning, 12.10
what it is, 7

E

e or E in numeric literal, 2.2.3.1
editioned Abstract Data Type (ADT), 14
electronic mail, 10.11.8
element of collection
reference to, 5.5
what it is, 5
e-mail, 10.11.8
embedded SQL
See static SQL
enabled trigger, 9.1.3
enabling compile-time warnings, 11.1
error directive, 2.10.1.3
error handling, 11
error-reporting function
SQLCODE, 13
SQLERRM, 13
escape character, 2.7.5.3
escaped identifier, 6.2
evaluation order, 2.7.2
evolution of type, 14
exception
avoiding, 11.3.2
declaration syntax of, 13
for collection, 5.10
handling
guidelines for, 11.3.2
overview of, 11.3
in FORALL statement
effect on rollback, 12.8.1.1
unhandled, 12.8.1.1
predefined
in general, 11.4
redefining, 11.5.5
progpagation of, 11.7
raised in trigger body, 9.3.8.1.5
raising, 11.6
reraising, 11.8
unhandled
in FORALL statement, 12.8.1.1
in general, 11.10
user-defined, 11.5
exception handler
for FORALL statement, 12.8.1.2
in general, 11.9
in pipelined table function, 12.13.11
syntax of, 13
EXCEPTION_INIT pragma, 13
EXECUTE IMMEDIATE statement
in general, 7.2.1
syntax of, 13
tuning and, 12.10
EXISTS method, 5.9.1
EXIT statement
in general, 4.3.2
syntax of, 13
EXIT WHEN statement
in general, 4.3.3
syntax of, 13
exiting a loop, 4.3
explicit cursor
calculated column in, 6.4.2.7
declaration syntax of, 13
expression in, 6.4.2.7
in cursor FOR LOOP statement, 6.5.3.2
in general, 6.4
in package, 10.13
syntax of attribute of, 13
explicit data type conversion, 3.5.1
explicit format model, 7.4.2.3
expression
as initial parameter value, 8.4.4
BOOLEAN, 2.7.6
cursor, 6.8
in explicit cursor, 6.4.2.7
in general, 2.7
SQL function in PL/SQL, 2.7.8
static, 2.10.1.5
syntax of, 13
EXTEND method, 5.9.6
external subprogram, 8.9

F

f or F in numeric literal, 2.2.3.1
FETCH statement
across COMMIT, 6.9.6.3
LIMIT clause of, 12.8.2.2
syntax of, 13
field
of datetime or interval data type, 3.2.4
of record, 5
FIRST method, 5.9.4
fixed-length character string
CHAR, 3.2.2.1
NCHAR, 3.2.2.3.1
FLOAT subtype, 3.2.1.4
FOR EACH ROW trigger, 9.3.5
FOR LOOP statement
in general, 4.3.7
index of, 4.3.7.1
syntax of, 13
FOR UPDATE cursor
unusable after COMMIT or ROLLBACK, 6.9.6.3
what it is, 6.9.6.2
FORALL statement
counting rows affected by, 12.8.1.3
exception in
effect on rollback, 12.8.1.1
handling, 12.8.1.2
unhandled, 12.8.1.1
in general, 12.8.1
syntax of, 13
tuning code and, 12.8.1
formal parameter
of cursor, 6.4.2.8
of subprogram, 8.4.1
format model, 7.4.2.3
forward declaration of subprogram
for nested subprogram, 8.3
in general, 8.1
function
built-in
See SQL function
declaration syntax of, 13
error-reporting
SQLCODE, 13
SQLERRM, 13
invoking, 8.1
options for, 8.2
pipelined table, 12.13
SQL
See SQL function
structure of, 8.2
tuning, 12.4.2
function call, 8.1
function result cache, 8.12

G

global identifier, 2.5
GOTO statement
exception handler and, 11.9.3
in general, 4.4.1
restrictions on, 13
syntax of, 13

H

hash table
See associative array
hiding PL/SQL source code
See wrapping PL/SQL source code
host variable as cursor variable, 6.7.5
HOUR field, 3.2.4
HTF package, 10.11.5
HTML tag generation, 10.11.5
HTP package, 10.11.5
HTTP callouts, 10.11.7

I

identifier
escaped, 6.2
global, 2.5
in general, 2.2.2
in static SQL, 6.1
local, 2.5
predefined, 2.2.2.2
reference to, 2.4
scope of, 2.5
user-defined
collecting data about, 12.6
ordinary, 2.2.2.3
quoted, 2.2.2.4
visibility of, 2.5
IDL, C
IF statement
IF THEN ELSE form, 4.2.2
IF THEN ELSIF form
compared to nested IF THEN ELSE statements, 4.2.3
compared to simple CASE statement, 4.2.3
in general, 4.2.3
IF THEN form, 4.2.1
nested
compared to IF THEN ELSIF form, 4.2.3
example of, 4.2.2
overview of, 4.2
syntax of, 13
IMP statement, 9.3.2.1
implicit cursor
cursor expression with, 6.8
declaration syntax of, 13
dynamic SQL and, 7.3
in cursor FOR LOOP statement, 6.5.3.1
in general, 6.4
implicit data type conversion
in general, 3.5.2
minimizing, 12.4.6
implicit rollback, 6.9.4
IN operator, 2.7.5.5
IN OUT parameter mode, 8.4.3.3
IN parameter mode, 8.4.3.1
in-bind, 12.8
independent (autonomous) transaction, 6.10
index of FOR LOOP statement, 4.3.7.1
index-by table
See associative array
infinite loop, 4.3.1
INFORMATIONAL compile-time warning, 11.1
initial value
%ROWTYPE attribute and, 2.3.6
%TYPE attribute and, 2.3.5
NOT NULL constraint and, 2.3.4
of collection, 5.4
of constant, 2.3.3
of cursor parameter, 6.4.2.8
of subprogram parameter, 8.4.4
of variable, 2.3.3
initialization parameter, 1.3.2
inline LOB locator, 3.3
INLINE pragma, 13
inlining, subprogram, 12.2
input, 1.2.3
inquiry directive, 2.10.1.4
INSERT statement
inserting record with
in general, 5.15
restrictions on, 5.18
PL/SQL extension to, 13
See also DML statement
INSERTING conditional predicate, 9.3.8.1.4
instance method, IR, 8.7.8
INSTEAD OF trigger, 9.3.4
INT subtype, 3.2.1.4
integer literal, 2.2.3.1
INTEGER subtype, 3.2.1.4
Interface Definition Language (IDL), C
interpreted compilation, 12.12.5
interval arithmetic, 3.2.4.7
interval data types, 3.2.4
INTERVAL DAY TO SECOND data type, 3.2.4.6
interval literal, 2.2.3.5
INTERVAL YEAR TO MONTH data type, 3.2.4.5
INVALID_CURSOR exception
handling, 6.7.4.4
in general, 11.4
INVALID_NUMBER exception, 11.4
invoker's rights unit
See IR unit
IR unit
Abstract Data Type (ADT), 8.7.7
call stack and, 8.7
database link, 8.7.6
dynamic SQL and, 8.7
instance method, 8.7.8
name resolution and, 8.7
overriding name resolution in, 8.7.4
privilege checking and, 8.7
run by trigger, 8.7.5
run in view, 8.7.5
static SQL and, 8.7
template objects in, 8.7.3
See also AUTHID property
IS NOT NULL operator, 2.7.5.2
IS NULL operator, 2.7.5.2
isolation level of transaction, 6.10.3

J

Java subprogram, 8.9

K

key-value pair, 5.1.1
keywords, D

L

labeled LOOP statements, 4.3.3
large object (LOB) data types, 3.3
LAST method, 5.9.4
leading blanks in string literals, 2.2.3.3
LENGTHB function, 2.1.2
letter, 2.1.1
LEVEL pseudocolumn, 6.3.2
lexical unit, 2.2
LIKE operator, 2.7.5.3
LIMIT clause of bulk FETCH statement, 12.8.2.2
LIMIT method, 5.9.3
literal
syntax of, 13
types of, 2.2.3
LOB data types, 3.3
LOB locator, 3.3
local identifier, 2.5
lock mode, 6.9.6.1
LOCK TABLE statement, 6.9.6.1
locking
overriding default, 6.9.6
result set row, 6.9.6.2
table, 6.9.6.1
logical operator, 2.7.3
logical rowid, 3.2.2.5
LOGIN_DENIED exception, 11.4
LONG data type, 3.2.2.4
LONG RAW data type, 3.2.2.4
loop counter, 4.3.7.1
LOOP statement
exiting, 4.3
kinds of, 4.3
labeling, 4.3
LOOP statements
bulk SQL for, 12.8
labeled, 4.3.3
nested, 4.3.3
optimizing, 12.4.3
LOOP UNTIL structure, 4.3.6

M

manageability, 1.1.6
membership test, 2.7.5.5
memory overhead, avoiding, 12.5
Method 4, 7.3
method, collection
See collection method
MINUTE field, 3.2.4
mixed parameter notation, 8.4.5
mode
lock, 6.9.6.1
parameter, 8.4.3
MONTH field, 3.2.4
multidimensional collection, 5.8
multiline comment, 2.2.4.2
multiple data transformations, 12.13
mutating table, 9.3.8.4.4

N

name
qualified, 2.4
qualified remote, 2.4
remote, 2.4
simple, 2.4
See also identifier
name resolution
AUTHID property and, 8.7
in static SQL, 6.2
overriding in IR unit, 8.7.4
PL/SQL and SQL differences, B.3
what it is, B.1
named cursor
syntax of attribute of, 13
what it is, 6.4.2.6
See also explicit cursor and cursor variable
named parameter notation, 8.4.5
national character set, 2.1.2
national character string, 3.2.2.3
native dynamic SQL
in general, 7.2
switching to DBMS_SQL package from, 7.3
native execution, compilation for, 12.12
NATURAL subtype, 3.2.1.1
NATURALN subtype, 3.2.1.1
NCHAR data type, 3.2.2.3.1
NCLOB data type, 3.3.4
nested comment, 2.2.4.2
nested cursor, 6.8
nested IF statement
compared to IF THEN ELSIF form, 4.2.3
example of, 4.2.2
nested LOOP statements, 4.3.3
nested record, 5.11
nested subprogram
forward declaration for, 8.3
what it is, 8.1
nested table
characteristics of, 5.1
constructor for, 5.4
in general, 5.1.2
INSTEAD OF trigger and, 9.3.4.2
subscript range for, 5.5
syntax of, 13
nested transaction, 6.10
new features, Preface
NEW pseudorecord, 9.1.2
NEXT method, 5.9.5
NEXTVAL pseudocolumn, 6.3.1
NLS parameters
associative array and, 5.1.1
SQL injection and, 7.4.1.3
NLS_LENGTH_SEMANTICS parameter, 3.2.2.1
NLS_SORT parameter, 2.7.5.1.3
NO_DATA_FOUND exception, 11.4
NOCOPY hint
effect on OUT parameter, 8.4.3.2
for tuning subprogram call, 12.11
in general, 8.4.2
restrictions on, 12.11
subprogram parameter aliasing and, 8.11
NOT NULL constraint
%TYPE attribute and, 2.3.5
EXTEND method and, 5.9.6
on collection element, 5.3
on constant, 2.3.4
on cursor parameter, 6.4.2.1
on PL/SQL variable, 2.3.4
NOT operator, 2.7.3
NOT_LOGGED_ON exception, 11.4
NULL statement
syntax of, 13
uses for, 4.4.2
null string, 2.2.3.3
NULL value
comparison operator and, 2.7.5
concatenation operator and, 2.7.1
for $$PLSQL_UNIT inquiry directive, 2.10.1.4.1
for unresolvable inquiry directive, 2.10.1.4.3
in control statement, 2.7.3
IN operator and, 2.7.5.5
in set, 2.7.5.5
simple CASE expression and, 2.7.7.1
simple CASE statement and, 4.2.4
NUMBER data type, 3.2.1.4
numeric data types, 3.2.1
numeric literal, 2.2.3.1
NUMERIC subtype, 3.2.1.4
NVARCHAR2 data type, 3.2.2.3.2

O

obfuscating PL/SQL source code
See wrapping PL/SQL source code
object type
See Abstract Data Type (ADT)
OBJECT_VALUE pseudocolumn, 9.3.8.2
OCI
associative array and, 5.1.1
cursor variable and, 6.7.6
OLD pseudorecord, 9.1.2
OPEN FOR statement, 13
OPEN statement, 13
operating system text file I/O, 10.11.6
operation, 2.7.2
operator
comparison
cursor variable and, 6.7.6
in general, 2.7.5
logical, 2.7.3
relational, 2.7.5.1
operator precedence, 2.7.2
optimizer, 12.1
OR operator, 2.7.3
Oracle Call Interface (OCI)
associative array and, 5.1.1
cursor variable and, 6.7.6
Oracle RAC environment, result caches in, 8.12.5.6
OUT parameter mode, 8.4.3.2
out-bind, 12.8
out-of-line LOB locator, 3.3
output, 1.2.3
overhead, avoiding
CPU, 12.4
memory, 12.5
overloaded subprogram
in general, 8.5
PLS_INTEGER and, 3.2.1.2.2
SIMPLE_INTEGER and, 3.2.1.2.2

P

package
advantages of, 10.3
body of, 10.7
contents of, 10.2
guidelines for writing, 10.12
initialization of, 10.1
of static constants, 2.10.1.5.4
pinning in shared memory pool, 12.5.3
private items in, 10.9
product-specific, 10.11
public items in, 10.9
referencing contents of, 10.6
serially reusable, 10.4
specification of, 10.5
STANDARD, 10.10
state of, 10.4.1
tuning code and, 12.5.2
what it is, 10.1
packaged subprogram, 8.1
parallel updates for large tables, 12.14
parameter
compilation
displaying value of, 2.10.1.4.1
in general, 1.3.2
predefined inquiry directive for, 2.10.1.4.1
cursor, 6.4.2.8
initialization, 1.3.2
subprogram
See subprogram parameter
parameter mode, 8.4.3
parentheses
nested, 2.7.2
to control evaluation order, 2.7.2
to improve readability, 2.7.2
pattern matching, 2.7.5.3
percent sign (%) wildcard character, 2.7.5.3
PERFORMANCE compile-time warning, 11.1
physical rowid, 3.2.2.5
pipe, 10.11.3
PIPE ROW statement, 12.13.4
pipelined table function, 12.13
placeholder for bind argument
in conditional compilation directive, 2.10.4
in dynamic SQL
EXECUTE IMMEDIATE statement and, 7.2.1
repeated, 7.2.3
in static SQL
in general, 6.1
OPEN FOR statement and, 6.7.4.1
PLS_INTEGER data type
for computation-intensive programs, 12.9
in general, 3.2.1.1
tuning code and, 12.4.7.1
PLS_INTEGER static expression, 2.10.1.5.1
PL/Scope tool, 12.6
PL/SQL architecture, 1.3
PL/SQL block syntax, 13
PL/SQL engine, 1.3.1, 1.3.1
PL/SQL function result cache, 8.12
PL/SQL language
advantages of, 1.1
character sets of, 2.1
high performance of, 1.1.2
high productivity with, 1.1.3
lexical units of, 2.2
limits of, C
main features of, 1.2
manageability and, 1.1.6
new features of, Preface
portability of, 1.1.4
program limits of, C
scalability of, 1.1.5
SQL integration in, 1.1.1
syntax of elements of, 13
PL/SQL unit
stored
SQL statements for, 14
what it is, 1.3.2
what it is, 1.3.2
PLSQL_CCFLAGS compilation parameter, 2.10.1.4.2
PLSQL_OPTIMIZE_LEVEL compilation parameter, 12.1
PLSQL_WARNINGS compilation parameter
displaying value of, 11.1
setting value of, 11.1
portability, 1.1.4
positional parameter notation, 8.4.5
POSITIVE subtype, 3.2.1.1
POSITIVEN subtype, 3.2.1.1
post-processed source text, 2.10.3
pragma
AUTONOMOUS_TRANSACTION
in compound trigger, 9.3.7.4
syntax of, 13
EXCEPTION_INIT, 13
INLINE, 13
RESTRICT_REFERENCES, 13
SERIALLY_REUSABLE, 13
what it is, 2.9
precedence, operator, 2.7.2
precision in NUMBER data type, 3.2.1.4
predefined constant, 3.2.1.3
predefined data type, 3
predefined exception
in general, 11.4
redefining, 11.5.5
predefined identifier, 2.2.2.2
predefined inquiry directive, 2.10.1.4.1
preprocessor control token, 2.10.1.1
PRIOR method, 5.9.5
privilege checking and AUTHID property, 8.7
procedure
declaration syntax of, 13
invoking, 8.1
structure of, 8.2
product-specific package, 10.11
Profiler API, 12.7.1
profiling and tracing programs, 12.7
program limits, C
PROGRAM_ERROR exception, 11.4
pseudocolumn
OBJECT_VALUE, 9.3.8.2
SQL, 6.3
pseudoinstruction
See pragma
pseudorecord, 9.1.2
punctuation character between identifiers, 2.2.2
purity rules, 8.10

Q

qualified name, 2.4
qualified remote name, 2.4
query processing
in general, 6.5
multiple-row dynamic query, 7.2.2
quotation mark, single or double, 2.1.1
quoted identifier, 2.2.2.4

R

RAISE statement, 13
RAISE_APPLICATION_ERROR procedure, 11.5.4
range test, 2.7.5.4
RAW data type, 3.2.2.2
read-only transaction, 6.9.5
read-write transaction, 6.9.5
real literal, 2.2.3.1
REAL subtype, 3.2.1.4
record
definition and declaration of, 5.11
nested, 5.11
what it is, 5
recursive subprogram
in general, 8.8
result-cached, 8.12.4.2
recursive trigger, 9.2
REF CURSOR
See cursor variable
REF CURSOR type, 6.7.2
relational operator, 2.7.5.1
RELEASE constant, 2.10.1.5.5
remote name, 2.4
REPEAT UNTIL structure, 4.3.6
reserved preprocessor control token, 2.10.1.1
reserved words, D
Resident Connection Pool, 10.11.4
RESTRICT_REFERENCES pragma, 13
result cache, 8.12
RESULT_CACHE clause, 8.12.1
RETURN clause, 8.2
RETURN statement
in general, 8.2
syntax of, 13
RETURNING INTO clause, 13
REUSE SETTINGS clause, 1.3.2
rollback
deadlock and, 6.9.4
FORALL statement and, 12.8.1.1
ROLLBACK statement
FOR UPDATE cursor and, 6.9.6.3
in autonomous transaction, 6.10.5.2
in general, 6.9.2
row trigger
body of, 9.3.8
column values accessible to, 9.3.8.1
rowid, 3.2.2.5
ROWID pseudocolumn
in static SQL, 6.3.3
instead of CURRENT OF clause, 6.9.6.3
what it is, 3.2.2.5
ROWIDTOCHAR function, 6.3.3
row-level trigger, 9.3.5
pseudorecords and, 9.1.2
what it is, 9.1.1
ROWNUM pseudocolumn, 6.3.4
ROWTYPE_MISMATCH exception, 11.4
run-time error
See exception

S

SAVEPOINT statement
in autonomous transaction, 6.10.5.3
in general, 6.9.3
scalability, 1.1.5
scalar data types, 3.2
scale in NUMBER data type, 3.2.1.4
scientific notation, 2.2.3.1
scope of identifier, 2.5
searched CASE expression, 2.7.7.2
searched CASE statement
explanation of, 4.2.5
syntax of, 13
SECOND field, 3.2.4
SELECT FOR UPDATE statement, 6.9.6.2
SELECT INTO statement
implicit cursor for, 6.4.1
introduction to, 2.6.2
SQL%NOTFOUND attribute and, 6.4.1.3
SQL%ROWCOUNT attribute and, 6.4.1.4
syntax of, 13
selection directive, 2.10.1.2
selector
in simple CASE expression, 2.7.7.1
in simple CASE statement, 4.2.4
SELF_IS_NULL exception, 11.4
sending electronic mail, 10.11.8
sequence, 6.3.1
sequential control statement, 4.4
serially reusable package, 10.4
SERIALLY_REUSABLE pragma, 13
session cursor
what it is, 6.4
set data structure
See nested table
set membership test, 2.7.5.5
SET ROLE command and AUTHID property, 8.7.2
SET TRANSACTION statement, 6.9.5
SEVERE compile-time warning, 11.1
short-circuit evaluation
how it works, 2.7.4
tuning code and, 12.4.5
side effects of subprogram, 8.10
SIGNTYPE subtype, 3.2.1.1
simple CASE expression, 2.7.7.1
simple CASE statement
compared to IF THEN ELSIF statement, 4.2.3
explanation of, 4.2.4
syntax of, 13
Simple Mail Transfer Protocol (SMTP), 10.11.8
simple name, 2.4
simple trigger, 9.1.1
SIMPLE_DOUBLE subtype
in general, 3.2.1.3
tuning code and, 12.4.7.2
SIMPLE_FLOAT subtype
in general, 3.2.1.3
tuning code and, 12.4.7.2
SIMPLE_INTEGER subtype
in general, 3.2.1.2
tuning code and, 12.4.7.1
single quotation mark
inside string literal, 2.2.3.3
symbol, 2.1.1
single-line comment, 2.2.4.1
SMALLINT subtype, 3.2.1.4
SMTP (Simple Mail Transfer Protocol), 10.11.8
space character between identifiers, 2.2.2
sparse collection, 5.1
SQL
dynamic
See dynamic SQL
static
See static SQL
SQL cursor
See implicit cursor
SQL function
highly optimized, 12.4.4
in PL/SQL expression, 2.7.8
SQL injection, 7.4
SQL integration in PL/SQL, 1.1.1
SQL pseudocolumn, 6.3
SQL statement
for stored PL/SQL units, 14
running in trigger, 9.1.4
tuning, 12.4.1
See also anonymous block
SQL%BULK_EXCEPTIONS cursor attribute, 12.8.1.2
SQL%BULK_ROWCOUNT cursor attribute, 12.8.1.3
SQL%FOUND cursor attribute, 6.4.1.2
SQL%NOTFOUND cursor attribute, 6.4.1.3
SQL%ROWCOUNT cursor attribute, 6.4.1.4
SQL*Loader and triggers, 9.3.2.1
SQLCODE function, 13
SQLERRM function, 13
SQLJ object type, creating, 14
standalone stored subprogram, 8.1
STANDARD package, 10.10
state
of package, 10.4.1
of trigger, 9.1.3
statement injection, 7.4.1.2
statement modification, 7.4.1.1
statement-level trigger, 9.1.1, 9.3.5
static constant
in DBMS_DB_VERSION package, 2.10.1.5.5
in general, 2.10.1.5.4
static expression, 2.10.1.5
static SQL
AUTHID property and, 8.7
name resolution in, 6.2
placeholder for bind argument in
in general, 6.1
OPEN FOR statement and, 6.7.4.1
PL/SQL identifier in, 6.1
what it is, 6
STORAGE_ERROR exception
in general, 11.4
recursion and, 8.8
store table, 5.1.2
stored PL/SQL unit, 1.3.2
string data type
binary or byte
LONG RAW, 3.2.2.4
RAW, 3.2.2.2
character
See character string
national character, 3.2.2.3
string literal
in general, 2.2.3.3
null, 2.2.3.3
syntax of, 13
zero-length, 2.2.3.3
STRING subtype, 3.2.2.1.1
strong REF CURSOR type, 6.7.2
subnormal range, 3.2.1.3
subprogram
C, 8.9
external, 8.9
inlining, 12.2
invoking
See subprogram call
Java, 8.9
nested
forward declaration for, 8.3
what it is, 8.1
overloaded
in general, 8.5
PLS_INTEGER and, 3.2.1.2.2
SIMPLE_INTEGER and, 3.2.1.2.2
overview of, 8.1
parameter
See subprogram parameter
parts of, 8.2
purity rules for, 8.10
reasons to use, 8.1
recursive
in general, 8.8
result-cached, 8.12.4.2
side effects of, 8.10
subprogram call
optimization of, 12.2
resolution of, 8.6
syntax of, 8.1
tuning, 12.11
subprogram parameter
actual
notation for, 8.4.5
passed by reference, 8.4.2
passed by value, 8.4.2
what it is, 8.4.1
aliasing
bulk binds and, 12.8.2.6
NOCOPY hint and, 8.11
cursor expression as, 6.8
cursor variable as, 6.7.3
formal, 8.4.1
initial value of, 8.4.4
mode of, 8.4.3
record as, 5.12
set of rows as, 6.8
subquery
correlated, 6.6
in cursor declaration, 6.6
in FROM clause, 6.6
in general, 6.6
SUBSCRIPT_BEYOND_COUNT exception, 11.4
SUBSCRIPT_OUTSIDE_LIMIT exception, 11.4
subtype
constrained, 3.1
of BINARY_DOUBLE data type, 3.2.1.3
of BINARY_FLOAT data type, 3.2.1.3
of datetime date type, 3.2.4.8
of interval data type, 3.2.4.8
of NUMBER data type, 3.2.1.4
of PLS_INTEGER data type, 3.2.1.1
unconstrained, 3.1
user-defined, 3.4
what it is, 3.1
symbols in database character set, 2.1.1
synonym, 2.4
syntax of PL/SQL language elements, 13
SYS_INVALID_ROWID exception, 11.4
SYS_REFCURSOR type, 6.7.2
system trigger
restrictions on, 9.3.8.4.6
what it is, 9.1.1

T

table
hash
See associative array
index-by
See associative array
mutating, 9.3.8.4.4
nested
characteristics of, 5.1
constructor for, 5.4
in general, 5.1.2
INSTEAD OF trigger and, 9.3.4.2
subscript range for, 5.5
store, 5.1.2
unordered
See associative array
updating large in parallel, 12.14
table function, pipelined, 12.13
TCL statement
in general, 6.9
in trigger, 6.10.6
TIMEOUT_ON_RESOURCE exception, 11.4
TIMESTAMP data type, 3.2.4.2
TIMESTAMP WITH LOCAL TIME ZONE data type, 3.2.4.4
TIMESTAMP WITH TIME ZONE data type,, 3.2.4.3
TIMEZONE_ABBR field, 3.2.4
TIMEZONE_HOUR field, 3.2.4
TIMEZONE_MINUTE field, 3.2.4
TIMEZONE_REGION field, 3.2.4
timing point of trigger, 9.1.1
TO_NUMBER function, 7.3.2
TO_REFCURSOR function, 7.3.1
TOO_MANY_ROWS exception, 11.4
Trace API, 12.7.2
trace file, 11
tracing and profiling programs, 12.7
trailing blanks in string literals, 2.2.3.3
transaction
autonomous, 6.10
ending
with COMMIT statement, 6.9.1
with ROLLBACK statement, 6.9.2
independent (autonomous), 6.10
nested, 6.10
read-only, 6.9.5
read-write, 6.9.5
SQL%ROWCOUNT cusor attribute and, 6.4.1.4
Transaction Control Language
See TCL statement
TRANSACTIONS initialization parameter, 6.10.5.4
trigger
as security mechanism, 9.1.5
AUTHID property and, 8.7
autonomous, 6.10.6
body of, 9.3.8
cascading, 9.4
compilation of, 9.5
compound, 9.3.7
conditional, 9.3.6
creating, 9.3
crossedition, 9.1.1
DDL statement in, 6.10.6
debugging, 9.7
designing, 9.2
disabled, 9.1.3
disabling, 9.9
enabled, 9.1.3
enabling, 9.8
firing order, 9.4, 9.4
for publishing database event, 9.12
IR subprogram run by, 8.7.5
level of, 9.3.5
overview of, 9.1
pseudorecords and, 9.1.2
recursive, 9.2
replacing, 9.6
state of, 9.1.3
TCL statement in, 6.10.6
timing point of, 9.1.1
types of, 9.1.1
uses of, 9.1.5
views for information about, 9.10
triggering statement
in general, 9.3.2
of compound trigger, 9.3.7.3
TRIM method, 5.9.7
tri-state logic, 2.7.3
tuning PL/SQL code, 12.3
type
See data type

U

unbounded collection, 5.1
unconstrained subtype, 3.1
underscore (_) wildcard character, 2.7.5.3
unhandled exception
in FORALL statement, 12.8.1.1
in general, 11.10
Unicode, 2.1.2
universal rowid, 3.2.2.5
unordered table
See associative array
updatable view, 9.3.4
UPDATE statement
PL/SQL extensions to, 13
trigger on, 9.3.2.2
with values in record
in general, 5.16
restrictions on, 5.18
See also DML statement
UPDATING conditional predicate, 9.3.8.1.4
updating large tables in parallel, 12.14
UROWID data type
in static SQL, 6.3.3
what it is, 3.2.2.5
USER_DUMP_DEST initialization parameter, 11
user-defined exception, 11.5
user-defined identifier
collecting data about, 12.6
ordinary, 2.2.2.3
quoted, 2.2.2.4
user-defined subtype, 3.4
user-defined type
See Abstract Data Type (ADT)
UTF8 encoding, 2.1.2
UTL_FILE package, 10.11.6
UTL_HTTP package, 10.11.7
UTL_SMTP package, 10.11.8
utlrp.sql script, 12.12.5

V

V$RESERVED_WORDS view, D
validation check for avoiding SQL injection, 7.4.2.2
VALUE_ERROR exception, 11.4
VARCHAR subtype, 3.2.2.1.1
VARCHAR2 data type
compared to CHAR, 3.2.2.1
in general, 3.2.2.1
tuning code and, 12.5.1
VARCHAR2 static expression, 2.10.1.5.3
variable
assigning value to, 2.6
binding of, 12.8
BOOLEAN, 2.6.4
composite, 5
cursor
See cursor variable
declaration of
overview of, 2.3.1
syntax of, 13
host, cursor variable as, 6.7.5
initial value of, 2.3.3
with undefined value, 6.1
variable-length character string
LONG, 3.2.2.4
NVARCHAR2, 3.2.2.3.2
RAW, 3.2.2.2
VARCHAR2, 3.2.2.1
variable-size array
characteristics of, 5.1
constructor for, 5.4
in general, 5.1.3
subscript range for, 5.5
syntax of, 13
varray
See variable-size array
VERSION constant, 2.10.1.5.5
view
AUTHID property and, 8.7
IR subprogram run in, 8.7.5
updatable, 9.3.4
virtual column
See calculated column
visibility
of identifier, 2.5
of transaction, 6.10.3

W

warning, compile-time
in general, 11.1
tuning code and, 12.5.4
weak REF CURSOR type, 6.7.2
WHILE LOOP statement
in general, 4.3.6
syntax of, 13
whitespace character
between lexical units, 2.2
in database character set, 2.1.1
inside lexical unit, 2.2
wildcard character, 2.7.5.3
wrap utility, A.4.2
wrapping PL/SQL source code
in general, A
inquiry directives and, 2.10.1.4.3

Y

YEAR field, 3.2.4

Z

ZERO_DIVIDE exception, 11.4
zero-length string, 2.2.3.3