Skip Headers

Pro*C/C++ Precompiler Programmer's Guide
Release 9.2

Part Number A97269-01
Go To Documentation Library
Home
Go To Product List
Book List
Go To Table Of Contents
Contents

Master Index

Feedback

Go to previous page

Index

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


Symbols

#include
file inclusion, Pro*C compared to C, 5-29

A

abnormal termination
automatic rollback, F-26
active set
changing, 6-14, 6-15
cursor movement through, 6-15
definition of, 2-7
how identified, 6-12
if empty, 6-16
when fetched from, 6-15
when no longer defined, 6-13
ALLOCATE
allocating a cursor variable, 4-30
ALLOCATE DESCRIPTOR statement, 14-13, F-14
ALLOCATE SQL statement, 17-6
ALLOCATE SQL statements, F-12
allocating
cursor variables, 4-30
cursors, F-12
thread context, 11-8, F-28
ANSI C Support, E-2
ANSI dynamic SQL, A-4
reference semantics, 14-8
See also dynamic SQL (ANSI), 14-1
application development process, 2-8
array of structs, 8-21, A-2
ARRAYLEN statement, 7-17
arrays
batch fetch, 8-5
bulk operations (ANSI dynamic SQL), 14-9
chapter discusses how to use, 8-1
definition of, 4-44
host arrays, 2-7
operations, 2-7
varying length, 18-3
associative interface, 17-5
when to use, 17-6
AT clause
in CONNECT statement, 3-9
in DECLARE CURSOR statement, 3-10
in DECLARE STATEMENT statement, 3-12
in EXECUTE IMMEDIATE statement, 3-11
of COMMIT statement, F-25, F-36
of EXECUTE IMMEDIATE statement, F-58
of EXECUTE statement, F-53
of INSERT statement, F-70
of SAVEPOINT statement, F-104
of SELECT statement, F-107
of SROLLBACK statement, F-101
of UPDATE statement, F-115
restriction on, 3-11
use of, 3-10
attributes of a collection
descriptions, 18-15
AUTO_CONNECT, 10-11
precompiler option, 3-5
AUTO_CONNECT precompiler option, 10-11
automatic connections, 3-4, 3-8
Avoiding, 4-14

B

batch fetch
advantage of, 8-5
example of, 8-5
number of rows returned by, 8-7
BFILES, 16-2
security, 16-2
bind descriptor, 13-25, 15-5
definition of, 13-25
information in, 13-26
bind SQLDA
purpose of, 15-3
bind variables
input host variables, 13-25
binding
definition of, 13-4
BREAK action
of WHENEVER, F-122
Byte Ordering, E-2

C

C preprocessor
directives supported by Pro*C, 5-29
how used in Pro*C, 5-29
C structs
generating for a REF, 17-45
using, 17-44
C types of collection attributes, 18-15
C variable in SQLDA
how value is set, 15-11
purpose of, 15-11
C++, 1-9
C++ applications, 12-1
cache, 17-5
CACHE FREE ALL SQL statement, 17-7
CACHE FREE ALL statement, F-15
CALL SQL statement, F-16
CALL statement, 7-28, A-2
example, 7-28
Calling Java from PL/SQL, A-5
CASE OTT parameter, 19-33
case sensitivity
in precompiler options, 10-3
CHAR datatype, 4-11
CHAR_MAP precompiler option, 5-2, 10-12, A-3
character data, 5-2
character strings
multibyte, 4-56
CHARF datatype, 4-11, 5-15
CHARZ datatype, 4-11
CLOSE CURSOR statement, 14-29
CLOSE SQL statements, F-18
CLOSE statement
dependence on precompiler options, 6-16
example, 6-16, F-19
purpose of, 6-13, 6-16
use in dynamic SQL method 4, 15-37
CLOSE_ON_COMMIT
precompiler option, 10-13, A-6
closing
cursors, F-18
CODE
precompiler option, 12-4
CODE OTT parameter, 19-31
code page, 4-53
CODE precompiler option, 10-14
coding conventions, 2-9
COLLECT GET statement
example, 18-19
COLLECTION APPEND, F-19
COLLECTION APPEND statement, 18-12
SQL statements
COLLECTION APPEND, F-19
COLLECTION DESCRIBE
example, 18-21
COLLECTION DESCRIBE statement, 18-14
SQL statements
COLLECTION DESCRIBE, F-20
COLLECTION GET statement, 18-8
SQL statements
COLLECTION GET, F-22
collection object types
handling, 18-4
COLLECTION RESET statement, 18-12
example, 18-22
SQL statements
COLLECTION RESET, F-22
COLLECTION SET statement, 18-10
example, 18-19
SQL statements
COLLECTION SET, F-23
COLLECTION TRIM statement, 18-13
SQL statements
COLLECTION TRIM, F-24
collection types
structs for, 18-4
collections, A-4
and C, 18-3
autonomous access, 18-5
descriptors, 18-4
element access, 18-5
manipulating, 18-4
nested tables, 18-2
OBJECT GET statement, 18-6
OBJECT SET statement, 18-6
VARRAYs, 18-3
column list
in INSERT statements, 6-10
when permissible to omit, 6-10
COMMENT clause
of COMMIT statement, F-25
Comments
restrictions in PL/SQL block, 13-31
comments
ANSI, 2-10
which allowed, 2-10
commit
automatic, 3-17
explicit versus implicit, 3-17
function of, 3-16
COMMIT SQL statement, F-24
COMMIT statement, 3-18
effect of, 3-18
ending a transaction, F-101
example of, 3-18
examples, F-26
purpose of, 3-18
RELEASE option in, 3-18
using in a PL/SQL block, 3-28
where to place, 3-18
committing
transactions, F-24
communicating over a network, 3-6
COMP_CHARSET precompiler option, 10-15
compiling, 2-17
specifying include file locations, 5-35
concurrency
definition of, 3-16
concurrent connections, 3-7
conditional precompilation, 2-15
defining symbols, 5-44
example, 2-16, 5-44
CONFIG OTT parameter, 19-32
CONFIG precompiler option, 10-15
configuration files, 10-3
and the Object Type Translator, 19-5
location, 10-4
system, 10-4
user, 10-4
CONNECT statement, F-26
AT clause in, 3-9
connecting to Oracle with, 3-2
examples, F-28
requirements for, 3-2
USING clause in, 3-9
using to enable a semantic check, D-4
connecting to Oracle, 3-2
automatic connections, 3-4
concurrently, 3-7
example of, 3-2
using Oracle Net, 3-7
connection pooling, 11-19
demo program1, 11-25
demo program2, 11-32
example, 11-34
using, 11-22
connections
concurrent, 3-12
default versus nondefault, 3-8
Explicit connections, 3-8
implicit, 3-14
naming of, 3-8
const
declaring constants, 5-46
CONTEXT ALLOCATE SQL statement, F-28
CONTEXT ALLOCATE statement, 11-8
context block
definition of, 20-4
CONTEXT FREE statement, 11-10, F-29
CONTEXT OBJECT OPTION GET SQL statement, 17-20
CONTEXT OBJECT OPTION SET SQL statement, 17-19
CONTEXT USE directive, 11-8
CONTEXT USE SQL directive, F-33
CONTEXT USE SQL statement, 11-8
CONTINUE action
in the WHENEVER statement, 9-26
of WHENEVER directive, F-121, F-122
result of, 9-26
CONVBUFSZ clause, 4-55
CPP_SUFFIX
precompiler option, 12-5
CPP_SUFFIX precompiler option, 10-16
CPP_SUFFIX precompiler options, 10-16
CREATE PROCEDURE statement
embedded, 7-21
creating
savepoints, F-103
creating temporary LOB, 16-15
CURRENT OF clause, 8-4
example of, 6-21
mimicking with ROWID, 3-26, 8-31
purpose of, 6-21
restrictions on, 6-22
current row
definition of, 2-7
using FETCH to retrieve, 6-13
cursor cache
definition of, 9-39
purpose of, C-9
cursor control statements
example of typical sequence, 6-22
cursor operations
overview of, 6-12
cursor variables, 4-29, F-12
allocating, 4-30
declaring, 4-29
restrictions on, 4-35
cursors, 2-16, 4-29
allocating, F-12
allocating a cursor variable, 4-30
analogy for, 2-7
association with queries, 6-12
closing, F-18
declaring, 6-13
definition of, 2-7
explicit versus implicit, 2-7
fetching rows from, F-59, F-62
for multirow queries, 6-12
how handling affects performance, C-7
movement through active set, 6-15
opening, F-92, F-94
purpose of, 6-12
reopening, 6-14, 6-16
restrictions on declaring, 6-13
rules for naming, 6-13
scope of, 6-14
scrollable cursors, 6-16
statements for manipulating, 6-12
types of, 2-7
using more than one, 6-14

D

data definition language
in transactions, 3-17
data integrity, 3-13
definition of, 3-16
data locks, 3-16
database link
creating synonym for, 3-14
defining, 3-14
example using, 3-14
using in INSERT statement, F-70
where stored, 3-14
database types
new, 17-47
databases
naming, 3-8
datatype equivalencing, 2-7
datatypes
ANSI DATE, 4-12
codes used in descriptors, 15-15
coercing NUMBER to VARCHAR2, 15-15
conversions, 5-12
dealing with ORACLE internal, 15-15
equivalencing, 5-12
equivalencing, purpose of, 2-7
internal, 4-2
internal versus external, 2-6
INTERVAL DAY TO SECOND, 4-14
INTERVAL YEAR TO MONTH, 4-13
list of internal, 15-13
need to coerce, 15-15
Oracle, 2-6
OTT mappings, 19-10
restrictions on using, 17-51
TIMESTAMP, 4-12
TIMESTAMP WITH LOCAL TIME ZONE, 4-13
TIMESTAMP WITH TIME ZONE, 4-13
user-defined type equivalencing, F-112
when to reset, 15-15
DATE datatype, 4-9
DATE, ANSI
datatype, 4-12
datetime
avoiding unexpected results, 4-14
DBMS interaction with MODE, 10-17
DBMS option, 5-15
DBMS precompiler option, 10-17
deadlock
definition of, 3-16
effect on transactions, 3-22
how broken, 3-22
DEALLOCATE DESCRIPTOR statement, 14-14, F-34
declaration
of cursors, 6-13
of host arrays, 8-2
of pointer variables, 4-50
of SQLCA, 9-17
declarative SQL statements
in transactions, 3-17
DECLARE CURSOR directives
examples, F-37
DECLARE CURSOR statement, 14-27
AT clause in, 3-10
use in dynamic SQL method 4, 15-25
DECLARE DATABASE SQL directives, F-38
Declare Section
allowable statements, 2-10
form, 2-10
purpose, 2-10
required when MODE=ANSI, 10-33
requirements, 2-10
rules for defining, 2-10
when MODE=ANSI, 5-15
when required, 2-10, 4-15
DECLARE statement, 6-14
example of, 6-13
purpose of, 6-12
required placement of, 6-13
scope of, F-40
use in dynamic SQL method 3, 13-19
DECLARE STATEMENT directive, F-39
DECLARE STATEMENT statement
AT clause in, 3-12
example of using, 13-28
using with dynamic SQL, 13-28
when required, 13-28
DECLARE statements
examples, F-40
DECLARE TABLE directive
examples, F-42
using with the SQLCHECK option, D-5
DECLARE TABLE SQL directive, F-41
DECLARE TABLE statement
need for with AT clause, 3-10
DECLARE TYPE directive, F-43
DEF_SQLCODE precompiler option, 10-18
default connections, 3-8
default database, 3-7
default file name extensions, 19-41
DEFINE precompiler option, 10-19
used in application migration, 5-36
defining symbols, 2-15
DELETE SQL statement, F-44
DELETE statement
embedded SQL examples, F-47
example of, 6-11
purpose of, 6-11
using host arrays in, 8-17
WHERE clause in, 6-11
delimiters
C versus SQL, 2-11
DEPT table, 2-17
DESCRIBE BIND VARIABLES statement
use in dynamic SQL method 4, 15-25
DESCRIBE command
use with PREPARE command, F-48
DESCRIBE DESCRIPTOR statement, F-50
DESCRIBE INPUT statement, 14-23
DESCRIBE OUTPUT statement, 14-24
DESCRIBE SELECT LIST statement
use in dynamic SQL method 4, 15-30
DESCRIBE SQL statement, F-48
DESCRIBE statement
examples, F-49
use in dynamic SQL Method 4, 13-25
descriptions of collection attributes, 18-15
descriptors, 15-4
bind descriptor, 13-25
definition of, 13-25
need for, 15-4
select descriptor, 13-25
using the sqlald() function to allocate, 15-5
using the sqlclu() function to deallocate, 15-37
determining current value of precompiler options, 10-5
distributed processing
support for, 3-7
using Oracle Net for, 3-7
distributed transactions, F-102
DML Returning Clause, A-5
DML returning clauses, 6-11
DO action
in the WHENEVER statement, 9-26
of WHENEVER directive, F-122
result of, 9-26
DTP model, 5-56
dummy host variables
placeholders, 13-3
DURATION precompiler option, 10-21, 17-21
dynamic PL/SQL
rules for, 13-29
versus dynamic SQL, 13-29
dynamic SQL
advantages and disadvantages of, 13-2
cannot use cursor variables with, 4-35
choosing the right method, 13-6
definition of, 2-5
guidelines for, 13-6
overview of, 13-2
restriction on, 6-22
restrictions on use of datatypes, 17-51
restrictions on using datatypes in, 17-51
use of PL/SQL with, 7-33
uses for, 13-2
using the AT clause in, 3-11
when to use, 13-2
dynamic SQL (ANSI)
basics, 14-2
bulk operations, 14-9
differences from Oracle dynamic, 14-30
Oracle extensions, 14-7
Overview, 14-3
Precompiler Options, 14-2
precompiler options, 14-12
reference semantics, 14-8
sample program, 14-39
sample programs, 14-31
dynamic SQL method 1
commands used with, 13-5
description of, 13-8
example of, 13-9
how to use, 13-8
requirements for, 13-5
use of EXECUTE IMMEDIATE with, 13-8
use of PL/SQL with, 13-30
dynamic SQL method 2
commands used with, 13-5
description of, 13-12
example of, 13-14
requirements for, 13-5
use of DECLARE STATEMENT with, 13-28
use of EXECUTE with, 13-12
use of PL/SQL with, 13-30
use of PREPARE with, 13-12
dynamic SQL method 3
commands used with, 13-5
compared to method 2, 13-18
example program, 13-21
requirements for, 13-5
sequence of statements used with, 13-18
use of DECLARE STATEMENT with, 13-28
use of DECLARE with, 13-19
use of FETCH with, 13-20
use of OPEN with, 13-20
use of PL/SQL with, 13-30
use of PREPARE with, 13-19
dynamic SQL method 4
need for descriptors with, 15-4
overview of, 13-25
prerequisites for using, 15-12
requirements for, 13-6
requirements of, 15-2
sample program, 15-40
sequence of statements used with, 13-27, 15-20
steps for, 15-19
use of CLOSE statement in, 15-37
use of DECLARE CURSOR statement in, 15-25
use of DECLARE STATEMENT with, 13-28
use of DESCRIBE in, 13-25
use of DESCRIBE statement in, 15-25, 15-30
use of descriptors with, 13-25
use of FETCH statement in, 15-35
use of OPEN statement in, 15-30
use of PL/SQL with, 13-30
use of PREPARE statement in, 15-25
use of the SQLDA in, 13-25, 15-4
using host arrays with, 15-37
using the FOR clause with, 13-29, 15-37
when needed, 13-25
dynamic SQL methods
overview of, 13-4
dynamic SQL statements
binding of host variables in, 13-4
definition of, 13-2
requirements for, 13-3
use of placeholders in, 13-3
using host arrays in, 13-29
versus static SQL statements, 13-2

E

embedded PL/SQL
advantages of, 7-2
cursor FOR loop, 7-3
example of, 7-7, 7-9
overview of, 2-5
packages, 7-4
PL/SQL tables, 7-5
procedures and functions, 7-3
requirements for, 7-6
SQLCHECK option, 7-7
support for SQL, 2-5
user-defined records, 7-5
using %TYPE, 7-2
using the VARCHAR pseudotype with, 7-11
using to improve performance, C-3
where allowed, 7-6
embedded SQL
ALLOCATE statement, F-12
CLOSE statement, F-18
CONTEXT ALLOCATE statement, 11-8, F-28
CONTEXT FREE statement, 11-10
definition of, 2-2
difference from interactive SQL, 2-4
ENABLE THREADS statement, 11-8
EXEC SQL CACHE FREE ALL, 17-7
EXECUTE statement, F-52
key concepts of, 2-2
mixing with host-language statements, 2-4
OPEN statement, F-92
overview of, 2-2
PREPARE statement, F-97
requirements for, 2-4
SAVEPOINT statement, F-103
SELECT statement, F-104
syntax for, 2-4
testing with SQL*Plus, 1-4
TYPE directive, F-112
UPDATE statement, F-113
using OCI types in, 17-47
using REFs in, 17-46
VAR directive, F-117
when to use, 1-4
WHENEVER directive, F-121
embedded SQL statements
labels for, 9-26
referencing host arrays in, 8-3
referencing host variables in, 4-18
suffixes and prefixes not allowed, 2-10
terminator for, 2-14
use of apostrophes in, 2-11
use of quotation marks in, 2-11
embedding
PL/SQL blocks in precompiler programs, F-52
EMP table, 2-17
ENABLE THREADS SQL statement, F-51
ENABLE THREADS statement, 11-8
enabling
threads, 11-8
encoding scheme (character set or code page), 4-53
enqueues
locking, 3-16
entering options, 5-32, 10-9
equivalencing
host variable equivalencing, F-117
user-defined type equivalencing, F-112
equivalencing of datatypes
datatype equivalencing, 2-7
error detection
error reporting, F-122
error handling, 2-8
alternatives, 9-2
need for, 9-2
overview of, 2-8
SQLCA versus WHENEVER statement, 9-3
use of ROLLBACK statement in, 3-21
error messages
maximum length of, 9-24
use in error reporting, 9-16
using the sqlglm() function to get, 9-23
where available in SQLCA, 9-16
error reporting
key components of, 9-14
use of error messages in, 9-16
use of parse error offset in, 9-15
use of rows-processed count in, 9-15
use of warning flags in, 9-15
WHENEVER directive, F-122
ERRORS precompiler option, 10-21
ERRTYPE
precompiler option, 10-22
ERRTYPE OTT parameter, 19-33
ERRTYPE precompiler option, 17-22
exception, PL/SQL
definition of, 7-13
EXEC ORACLE DEFINE statement, 5-43
EXEC ORACLE ELSE statement, 2-15, 5-43
EXEC ORACLE ENDIF statement, 2-15, 5-43
EXEC ORACLE IFDEF statement, 2-15, 5-43
EXEC ORACLE IFNDEF statement, 2-15, 5-43
EXEC ORACLE OPTION statement
set option values inline, 10-9
EXEC ORACLE statement
scope of, 10-10
syntax for, 10-10
uses for, 10-10
EXEC ORACLE statements, 2-15
EXEC SQL CACHE FREE statement, 17-7
EXEC SQL clause
using to embed SQL, 2-4
EXEC SQL INCLUDE
contrasted with #include, 5-36
EXEC SQL VAR statement
CONVBUFSZ clause, 4-55
EXEC TOOLS
GET CONTEXT statement, 20-17
GET statement, 20-16
MESSAGE statement, 20-17
SET CONTEXT statement, 20-16
SET statement, 20-15
EXEC TOOLS statements, 20-14
executable SQL statements
purpose of, 6-6
uses for, 2-3
where allowed, 2-3
EXECUTE ... END-EXEC SQL statement, F-52
EXECUTE DESCRIPTOR statement
SQL statements
EXECUTE DESCRIPTOR, F-56
EXECUTE IMMEDIATE SQL statement, F-58
EXECUTE IMMEDIATE statement, 14-26
AT clause in, 3-11
examples, F-59
use in dynamic SQL method 1, 13-8
EXECUTE optional keyword of ARRAYLEN statement, 7-18
EXECUTE SQL statement, F-54
EXECUTE statement, 14-25
examples, F-53, F-55
use in dynamic SQL method 2, 13-12
execution of statements, 13-4
execution plan, C-5, C-6
EXPLAIN PLAN statement
function of, C-6
using to improve performance, C-6
explicit connections, 3-8
description of, 3-8
multiple, 3-12
single, 3-9
extensions
default file name, 19-41
external datatypes
definition of, 2-7
FLOAT, 4-6
INTEGER, 4-6
STRING, 4-6
external procedures, A-5
callbacks, 7-30
calling from PL/SQL, 7-30
creating, 7-31
error-handling, 7-32
restrictions, 7-31

F

F variable in SQLDA
how value is set, 15-10
purpose of, 15-10
FAQs, 1-8
features
new, xliii
features,new, xliii
FETCH DESCRIPTOR SQL statement, F-62
FETCH SQL statement, F-59
FETCH statement, 14-28
example of, 6-15
examples, F-62
INTO clause in, 6-15
purpose of, 6-13, 6-15
results of, 6-15
use in dynamic SQL method 3, 13-20
use in dynamic SQL method 4, 15-35
used after OPEN command, F-96
used after OPEN statement, F-94
fetching
rows from cursors, F-59, F-62
fetching in batches
batch fetch, 8-5
FIPS flagger
warns of array usage, 8-4
warns of missing Declare Section, 4-15
warns of use of pointers as host variables, 5-7
FIPS precompiler option, 10-22
flags
warning flags, 9-15
FLOAT datatype, 4-6
FOR clause
example of using, 8-18
of embedded SQL EXECUTE DESCRIPTOR statement, F-57
of embedded SQL EXECUTE statement, F-55
purpose of, 8-18
requirements for, 8-18
restrictions on, 8-19
using in dynamic SQL method 4, 15-37
using with host arrays, 8-18
when variable negative or zero, 8-18
FOR UPDATE OF clause
locking rows with, 3-24
purpose of, 3-24
when to use, 3-24
FORCE clause
of COMMIT statement, F-26
of ROLLBACK statement, F-101
forward references
why not allowed, 6-13
FREE SQL statement, 17-7, F-65
free() function, 15-37
example of using, 15-37
freeing
thread context, 11-10, F-29
Frequently Asked Questions, 1-8
full scan
description of, C-6
function prototype
definition of, 10-14
functions
cannot serve as host variables, 4-19

G

GENXTB form
how to run, 20-12
use with user exits, 20-12
GENXTB utility
how to run, 20-13
use with user exits, 20-13
GET DESCRIPTOR statement, 14-15
Globalization Support, 4-52, A-3
GOTO action
in the WHENEVER statement, 9-26
of WHENEVER directive, F-121
result of, 9-26
guidelines
for dynamic SQL, 13-6
for separate precompilations, 2-16
for the WHENEVER statement, 9-30
for transactions, 3-28
for user exits, 20-13

H

HEADER precompiler option, 5-37, 10-24
heap
definition of, 9-39
HFILE OTT parameter, 19-32
hints
COST, C-5
for the ORACLE SQL statement optimizer, 6-20
in DELETE statements, F-47
in SELECT statements, F-108
in UPDATE statements, F-116
HOLD_CURSOR
precompiler option
used to improved performance, C-12
what it affects, C-7
HOLD_CURSOR option
of ORACLE Precompilers, F-19
HOLD_CURSOR precompiler option, 10-24
host arrays
advantages of, 8-2
declaring, 8-2
dimensioning, 8-2
in the DELETE statement, 8-17
in the INSERT statement, 8-15
in the SELECT statement, 8-5
in the UPDATE statement, 8-15
in the WHERE clause, 8-20
matching sizes of, 8-3
referencing, 8-2, 8-3
restrictions on, 8-4, 8-14, 8-15, 8-16, 8-17
used as input host variables, 8-3
used as output host variables, 8-3
using in dynamic SQL method 4, 15-37
using in dynamic SQL statements, 13-29
using the FOR clause with, 8-18
using to improve performance, C-3
when not allowed, 8-2
host language
definition of, 2-2, 2-3
host program
definition of, 2-2
host structures
arrays in, 4-44
declaring, 4-43
host variables, 6-2
assigning values to, 2-6
declarations, 18-4
declaring, 2-10, 18-4
definition of, 2-5
dummy, 13-3
host variable equivalencing, F-117
in EXECUTE statement, F-55
in OPEN statement, F-93
in user exits, 20-4
input versus output, 6-2
must resolve to an address, 4-19
overview of, 2-5
purpose of, 6-2
restrictions on, 4-19
rules for naming, 2-13
using in PL/SQL, 7-7

I

I variable in SQLDA
how value is set, 15-10
purpose of, 15-10
IAF GET statement
example of using, 20-5
in user exits, 20-4
purpose of, 20-4
specifying block and field names in, 20-5
syntax for, 20-4
IAF PUT statement
example of using, 20-6
in user exits, 20-6
purpose of, 20-6
specifying block and field names in, 20-6
syntax for, 20-6
IAP in SQL*Forms
purpose of, 20-13
identifiers, ORACLE
how to form, F-12
implicit connections, 3-14
multiple, 3-15
single, 3-14
IN OUT parameter mode, 7-3
IN parameter mode, 7-3
INAME precompiler option, 10-25
INCLUDE
precompiler option, use of, 5-35
using to include the SQLCA, 9-17
INCLUDE precompiler option, E-3
indexes
using to improve performance, C-6
indicator arrays, 8-4
example of using, 8-4
uses for, 8-4
INDICATOR keyword, 4-19
indicator variables
assigning values to, 6-4
association with host variables, 6-3
declarations, 18-4
declaring, 4-19, 18-4
definition of, 2-6
function of, 6-3
guidelines, 4-21
interpreting values of, 6-4
naming of, 4-47
referencing, 4-19
requirements for, 6-4
used with multibyte character strings, 4-56
using in PL/SQL, 7-12
using to detect NULLs, 6-4
using to detect truncated values, 6-4
using to insert NULLs, 6-4
using to return NULLs, 6-5
using to test for NULLs, 6-6
with structures, 4-46
in-doubt transaction, 3-27
INITFILE OTT parameter, 19-31
INITFUNC OTT parameter, 19-32
initialization function
calling, 19-23
tasks of, 19-25
input host variables
assigning values to, 6-3
definition of, 6-2
restrictions on, 6-2
uses for, 6-2
where allowed, 6-2
INSERT SQL statement, F-69
examples, F-71
INSERT statement
column list in, 6-10
example of, 6-9
INTO clause in, 6-10
purpose of, 6-9
requirements for, 6-10
using host arrays in, 8-15
VALUES clause in, 6-10
inserting
rows into tables and views, F-69
INTEGER datatype, 4-6
interface
native, 5-56
XA, 5-56
internal datatypes
definition of, 2-6
INTERVAL DAY TO SECOND datatype, 4-14
INTERVAL YEAR TO MONTH datatype, 4-13
INTO clause
for output host variables, 6-2
in FETCH statements, 6-15
in INSERT statements, 6-10
in SELECT statements, 6-8
of FETCH DESCRIPTOR statement, F-63
of FETCH statement, F-60
of SELECT statement, F-107
used with FETCH instead of SELECT, 6-13
intype file, 19-35
providing when running OTT, 19-8
structure of, 19-35
INTYPE OTT parameter, 19-30
INTYPE precompiler option, 10-27
invalid use
of precompiler preprocessor, 5-33

J

joins
restriction on, 6-22

L

L variable in SQLDA
how value is set, 15-8
purpose of, 15-8
label name
maximum length of, 9-26
Large Objects (LOBs), A-4
LDA, 5-52
remote and multiple connections, 5-52
setup for OCI version 8, 5-52
lines
continuation, 2-13
maximum length, 2-13
LINES precompiler option, 10-28
link
database link, 3-14
linking, 2-17
on UNIX, 1-10
on VMS, 1-11
two-task, 2-17
Linking in an XA Library, E-3
LNAME precompiler option, 10-29
LNPROC
VMS link script, 1-11
LOB APPEND SQL statement, F-72
LOB APPEND statement, 16-12
LOB ASSIGN SQL statement, F-73
LOB ASSIGN statement, 16-13
LOB CLOSE SQL statement, F-73
LOB CLOSE statement, 16-13
LOB COPY SQL statement, F-74
LOB COPY statement, 16-14
LOB CREATE TEMPORARY SQL statement, F-74
LOB CREATE temporary statement, 16-15
LOB DESCRIBE SQL statement, F-75
LOB DISABLE BUFFERING SQL statement, F-76
LOB DISABLE BUFFERING statement, 16-16
LOB ENABLE BUFFERING SQL statement, F-77
LOB ENABLE BUFFERING statement, 16-16
LOB ERASE SQL statement, F-77
LOB ERASE statement, 16-17
LOB FILE CLOSE ALL SQL statement, F-78
LOB FILE CLOSE ALL statement, 16-18
LOB file close all statement, 16-18
LOB FILE SET SQL statement, F-78
LOB FILE SET statement, 16-18
LOB FLUSH BUFFER SQL statement, F-79
LOB FLUSH BUFFER statement, 16-19
LOB FREE TEMPORARY SQL statement, F-80
LOB FREE TEMPORARY statement, 16-20
LOB LOAD FROM FILE statement, 16-20
LOB LOAD SQL statement, F-80
LOB OPEN SQL statement, F-81
LOB OPEN statement, 16-21
LOB READ SQL statement, F-81
LOB READ statement, 16-22
LOB TRIM SQL statement, F-82
LOB WRITE SQL statement, F-83
LOBs
access methods, 16-5
BFILES, 16-2
buffering system, 16-10
external, 16-2
initializing, 16-8
internal, 16-2
locators, 16-3
locators in C, 16-7
temporary, 16-3
Location of Included Files, E-2
location of the Pro*C/C++ Executable, E-3
location transparency
how provided, 3-15
lock
released by ROLLBACK statement, F-102
LOCK TABLE statement
closes mall cursors, 3-26
example of, 3-25
locking tables with, 3-25
NOWAIT parameter in, 3-26
purpose of, 3-25
locking, 3-24
definition of, 3-16
explicit versus implicit, 3-24
modes of, 3-16
overriding default, 3-24
privileges needed to obtain, 3-28
table versus row, 3-24
uses for, 3-24
with FOR UPDATE OF, 3-24
with the LOCK TABLE statement, 3-25
logon, 3-2
Logon Data Area, 5-52
LONG datatype, 4-7
LONG RAW datatype, 4-10
LONG VARCHAR
datatype, 4-10
LONG VARRAW datatype, 4-10
LTYPE precompiler option, 10-29
lvalue, 4-14

M

M variable in SQLDA
how value is set, 15-11
purpose of, 15-11
macro precompiler options, 10-6
malloc()
example of using, 15-32
purpose of, 15-32
MAXLITERAL
default value for, 2-13
MAXLITERAL precompiler option, 10-30
MAXOPENCURSORS
precompiler option
effect on performance, C-10
for multiple cursors, 6-14
specifying for separate precompilation, 2-16
what it affects, C-7
MAXOPENCURSORS precompiler option, 10-31
metadata, 18-17
micro precompiler options, 10-6
migration
error message codes, A-6
include files, 5-36
migration from earlier releases, A-7
MODE interaction with DBMS, 10-17
MODE precompiler option, 10-32
modes, parameter, 7-3
multithreaded applications
sample program, 11-12
user-interface features
embedded SQL statements and directives, 11-7

N

N variable in SQLDA
how value is set, 15-7
purpose of, 15-7
naming
of cursors, 6-13
of database objects, F-12
of select-list items, 15-4
of SQL*Forms user exits, 20-13
NATIVE
value of DBMS option, 10-17
native interface, 5-56
navigational access sample program, 17-36
nested tables, 18-2
creation, 18-2
network
communicating over, 3-6
protocols, 3-6
reducing traffic, C-4
new features, xliii
NLS parameters, 4-52
NLS_CURRENCY, 4-52
NLS_DATE_FORMAT, 4-52
NLS_DATE_LANGUAGE, 4-52
NLS_ISO_CURRENCY, 4-52
NLS_LANG, 4-53
NLS_LANGUAGE, 4-52
NLS_NUMERIC_CHARACTERS, 4-52
NLS_SORT, 4-52
NLS_TERRITORY, 4-52
NLS_CHAR precompiler option, 10-33
NLS_LOCAL precompiler option, 10-33
node
current, 3-7
definition of, 3-6
NOT FOUND condition
in the WHENEVER statement, 9-25
meaning of, 9-25
of WHENEVER directive, F-121
NOWAIT parameter
effect of, 3-26
in LOCK TABLE statements, 3-26
omitting, 3-26
NULLs
definition of, 2-6
detecting, 6-4
handling in dynamic SQL method 4, 15-18
hardcoding, 6-5
inserting, 6-4
restrictions on, 6-6
returning, 6-5
testing for, 6-6
using the sqlnul() function to test for, 15-18
null-terminated strings, 4-7
NUMBER datatype, 4-5
using the sqlprc() function with, 15-16
numeric expressions
cannot serve as host variables, 4-19

O

object cache, 17-5
OBJECT CREATE SQL statement, 17-10, F-83
OBJECT DELETE SQL statement, 17-13, F-85
OBJECT DEREF SQL statement, 17-11, F-85
OBJECT FLUSH SQL statement, F-87
OBJECT FLUSH SQL statements, 17-13
OBJECT GET SQL statement, 17-17, F-88
OBJECT RELEASE SQL statement, F-89
OBJECT SET SQL statement, 17-16, F-90
Object Type Translator (OTT), A-4
command line, 19-6
command line syntax, 19-29
creating types in the database, 19-5
default name mapping, 19-41
outtype file, 19-20
parameters, 19-30 to  19-34
providing an intype file, 19-8
reference, 19-28
restriction, 19-42
using, 19-1, 19-2
using with Pro*C/C++, 19-26
Object Types, A-3
OBJECT UPDATE SQL statement, 17-13, F-91
objects
accessing with OCI, 19-23
introduction to, 17-2
manipulating with OCI, 19-23
persistent, 17-5
persistent versus transient copies of, 17-5
references to, 17-2
support, 17-1
transient, 17-5
types, 17-2
using object types in Pro*C/C++, 17-4
OBJECTS precompiler option, 10-34, 17-22
OCI applications
using the OTT with, 19-21
OCI calls, 1-9
embedding, 5-52
in an X/A environment, 5-58
OCI onblon() call
not used to connect, 5-52
OCI orlon() call
not used to connect, 5-52
OCI Release 8, 5-46
accessing and manipulating objects, 19-23
embedding in Pro*C/C++, 5-50
interfacing to, 5-48
parameters in the environment handle, 5-47
SQLLIB extensions, 5-46
OCI types
declaring, 17-46
manipulating, 17-47
OCIDate, 17-46
OCINumber, 17-46
OCIRaw, 17-46
OCIString, 17-46
using in embedded SQL, 17-47
OCIDate, 17-46
declaring, 17-46
ocidfn.h, 5-52
OCINumber, 17-46
declaring, 17-46
OCIRaw, 17-46
declaring, 17-46
OCIString, 17-46
declaring, 17-46
ONAME precompiler option, 10-34
OPEN CURSOR statement, 14-27
OPEN DESCRIPTOR SQL statement, F-94
OPEN SQL statement, F-92
OPEN statement, 6-14
dependence on precompiler options, 6-14
effect of, 6-14
example of, 6-14
examples, F-94
purpose of, 6-12, 6-14
use in dynamic SQL method 3, 13-20
use in dynamic SQL method 4, 15-30
opening
a cursor variable, 4-31
cursors, F-92, F-94
operators
C versus SQL, 2-14
restrictions on, 2-14
optimization approach, C-5
optimizer hints, C-5
in C, 6-20
in C++, 6-20, 12-4
ORACA, 9-4
example of using, 9-43
using to gather cursor cache statistics, 9-42
ORACA precompiler option, 10-35
ORACAID component, 9-39
Oracle
datatypes, 2-6
Forms Version 4, 20-14
Open Gateway
using the ROWID datatype with, 4-9
Toolset, 20-14
Oracle Call Interface version 7, 5-52
Oracle Communications Area, 9-36
Oracle names
how to form, F-12
Oracle Net
connecting to Oracle through, 3-7
connection syntax, 3-6
for concurrent connections, 3-7
function of, 3-6
OTT parameter TRANSITIVE, 19-34
OTT parameters
CASE, 19-33
CODE, 19-31
CONFIG, 19-32
ERRTYPE, 19-33
HFILE, 19-32
INITFILE, 19-31
INITFUNC, 19-32
INTYPE, 19-30
OUTTYPE, 19-31
SCHEMA_NAMES, 19-34
USERID, 19-30
where they appear, 19-34
OTT. See Object Type Translator
OUT parameter mode, 7-3
output host variables
assigning values to, 6-2
definition of, 6-2
outtype file, 19-35
when running OTT, 19-20
OUTTYPE OTT parameter, 19-31
overhead
reducing, C-2

P

PAGELEN
precompiler option, 10-36
parameter modes, 7-3
PARSE
precompiler option, 10-36
parse error offset
how to interpret, 9-15
use in error reporting, 9-15
parsing dynamic statements
PREPARE statement, F-97
password
defining, 3-2
passwords
changing at runtime, A-3
performance
eliminating extra parsing to improve, C-7
optimizing SQL statements to improve, C-5
reasons for poor, C-2
using embedded PL/SQL to improve, C-3
using HOLD_CURSOR to improve, C-12
using host arrays to improve, C-3
using indexes to improve, C-6
using RELEASE_CURSOR to improve, C-12
using row-level locking to improve, C-6
persistent copies of objects, 17-5
persistent objects, 17-5
placeholders
duplicate, 13-13, 13-30
naming, 13-14
proper order of, 13-14
use in dynamic SQL statements, 13-3
PL/SQL, 1-5
anonymous block
used to open a cursor variable, 4-32
cursor FOR loop, 7-3
description of, 1-5
difference from SQL, 1-5
executing a block using the AT clause, 3-10
integration with database server, 7-2
main advantage of, 1-5
packages, 7-4
PL/SQL tables, 7-5
procedures and functions, 7-3
RECORD type
cannot be bound to a C struct, 4-45
relationship with SQL, 1-5
setting SQLCA, 9-23
user-defined records, 7-5
PL/SQL blocks
embedded in precompiler programs, F-52
pointer
definition of, 4-50
to cursor variables
restrictions on, 4-30
pointer variables
declaring, 4-50
determining size of referenced value, 4-50
referencing, 4-50
referencing struct members with, 4-50
precedence of precompiler options, 10-4
precision
definition of, 15-16
using sqlprc() to extract, 15-16
when not specified, 15-16
precompilation
conditional, 2-15
separate, 2-16
precompilation unit, 3-2, 10-7
precompiled header files, 5-37, A-2
C++ restrictions, 5-41
CODE option, 5-41
PARSE option, 5-41
precompiler options
alphabetized list, 10-7, 10-11
AUTO_CONNECT, 10-11
case sensitivity, 10-3
CHAR_MAP, 5-2, 10-12, A-3
CLOSE_ON_COMMIT, 6-18, 10-13
CODE, 10-14
COMP_CHARSET, 10-15
CONFIG, 10-15
configuration files, 10-3
CPP_SUFFIX, 10-16
DBMS, 10-17
DEF_SQLCODE, 10-18
DEFINE, 10-19
determining current value, 10-5
DURATION, 10-21
DYNAMIC, 14-12
entering, 10-9
entering on the command line, 10-10
ERRORS, 10-21
ERRTYPE, 10-22
FIPS, 10-22
HEADER, 10-24
HOLD_CURSOR, 10-24
INAME, 10-25
INCLUDE, 10-26
INTYPE, 10-27
LINES, 10-28
list of, 10-11
LNAME, 10-29
LTYPE, 10-29
MAXLITERAL, 2-13, 10-30
MAXOPENCURSORS, 10-31
micro and macro, 10-6
MODE, 10-32, 14-12
NLS_CHAR, 10-33
NLS_LOCAL, 10-33
OBJECTS, 10-34
ONAME, 10-34
ORACA, 10-35
PAGELEN, 10-36
PARSE, 10-36
precedence, 10-4
PREFETCH, 10-37
RELEASE_CURSOR, 10-38
scope, 10-7
scope of, 10-7
SELECT_ERROR, 10-39
specifying, 10-10
SQLCHECK, 10-39, 17-23
syntax for, 10-10
SYS_INCLUDE, 10-40
THREADS, 10-41, 11-7
TYPE_CODE, 10-42, 14-12
UNSAFE_NULL, 10-42
USERID, 10-43
using, 10-11 to  10-45
VARCHAR, 10-44
VERSION, 10-45
predefined symbols, 2-15
PREFETCH precompiler option, 6-18, 10-37, A-5
PREPARE SQL statement, F-97
PREPARE statement, 14-23
effect on data definition statements, 13-5
examples, F-98
use in dynamic SQL, 13-12, 13-19
use in dynamic SQL method 4, 15-25
preprocessor
example, 5-44
EXEC ORACLE directives, 5-43
preprocessor directives
directives not supported by Pro*C, 5-30
preprocessor, support of, 4-2
private SQL area
association with cursors, 2-7
definition of, 2-7
opening of, 2-7
purpose of, C-9
Pro*C/C++ Precompiler
common uses for, 1-4
Globalization Support, 4-53
new database types, 17-47
new features, A-1 to ??
object support in, 17-1
runtime context, 5-47
use of PL/SQL with, 7-6
using OTT with, 19-26
procedural database extension, 7-4
program termination
normal versus abnormal, 3-23
programming guidelines, 2-9

Q

queries
association with cursors, 6-12
forwarding, 3-14
incorrectly coded, 6-9
kinds of, 6-7
requirements for, 6-7
returning more than one row, 6-7
single-row versus multirow, 6-9

R

RAW datatype, 4-9
READ ONLY parameter
in SET TRANSACTION statement, 3-23
read-only transactions
description of, 3-23
example of, 3-24
how ended, 3-23
record, 7-5
REF
structure for, 17-45
REF (reference to object), 17-2
REFERENCE clause
in TYPE statement, 5-14
reference semantics (ANSI dynamic SQL), 14-8
references to objects (REFs)
declaring, 17-45
using, 17-45
using in embedded SQL, 17-46
referencing
of host arrays, 8-2, 8-3
REFs
declaring, 17-45
using, 17-45
using in embedded SQL, 17-46
REGISTER CONNECT SQL statement, F-98
RELEASE option, 3-23
if omitted, 3-23
in COMMIT statement, 3-18
in ROLLBACK statement, 3-21
purpose of, 3-18
restriction on, 3-21
RELEASE_CURSOR
precompiler option
what it affects, C-7
RELEASE_CURSOR option
of ORACLE Precompilers, F-19
using to improve performance, C-12
RELEASE_CURSOR precompiler option, 10-38
remote database
declaration of, F-38
reserved namespaces, B-4
reserved words and keywords, B-2
resource manager, 5-56
restrictions
on AT clause, 3-11
on Comments, 13-31
on CURRENT OF clause, 6-22
on declaring cursors, 6-13
on FOR clause, 8-19
on host arrays, 8-4, 8-14, 8-15, 8-16, 8-17
on input host variables, 6-2
on NULLs, 6-6
on separate precompilation, 2-16
on SET TRANSACTION statement, 3-23
use of CURRENT OF clause, 8-4
retrieving rows from a table
embedded SQL, F-104
return codes
user exits, 20-8
returning clause
DELETE, 6-11
in INSERT, 6-11
in UPDATE, 6-11