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
- returning clauses, 6-11
- roll back
- to a savepoint, F-103
- to the same savepoint multiple times, F-102
- ROLLBACK SQL statement, F-100
- ROLLBACK statement, 3-22
- effect of, 3-20
- ending a transaction, F-101
- example of, 3-21
- examples, F-102
- in error handling routines, 3-21
- purpose of, 3-20
- RELEASE option in, 3-21
- TO SAVEPOINT clause in, 3-20
- using in a PL/SQL block, 3-28
- where to place, 3-21
- rollbacks
- automatic, 3-22
- function of, 3-16
- statement-level, 3-22
- row locks
- acquiring with FOR UPDATE OF, 3-24
- advantage of, C-6
- using to improve performance, C-6
- when acquired, 3-25
- when released, 3-25
- ROWID
- logical, 4-8, 4-41
- pseudocolumn, 3-26
- using to mimic CURRENT OF, 3-26, 8-31
- pseudocolumns, 4-41
- universal, 4-8, 4-41, A-5
- ROWID datatype, 4-8
- rows
- fetching from cursors, F-59, F-62
- inserting into tables and views, F-69
- updating, F-113
- rows-processed count
- use in error reporting, 9-15
- runtime context
- establishing, 5-47
- terminating, 5-47
- runtime type checking, 17-23
S
- S variable in SQLDA
- how value is set, 15-10
- purpose of, 15-10
- sample database tables
- DEPT table, 2-17
- EMP table, 2-17
- sample object type code, 17-36
- sample programs
- ansidyn1.pc, 14-31
- ansidyn2.pc, 14-39
- calldemo.sql, with sample9.pc, 7-24
- coldemo1.pc, 18-24
- cppdemo1.pc, 12-6
- cppdemo2.pc, 12-10
- cppdemo3.pc, 12-14
- cursor variable demos, 4-36
- cv_demo.pc, 4-36
- cv_demo.sql, 4-36
- extp1.pc, 7-32
- how to precompile, 2-19
- lobdemo1.pc, 16-36
- navdemo1.pc, 17-36
- oraca.pc, 9-43
- sample10.pc, 15-40
- sample11.pc, 4-36
- sample12.pc, 15-40
- sample1.pc, 2-19
- sample2.pc, 4-47
- sample3.pc, 8-8
- sample4.pc, 5-16
- sample5.pc, 20-10
- sample6.pc, 13-9
- sample7.pc, 13-14
- sample8.pc, 13-21
- sample9.pc, 7-24
- sqlvcp.pc, 4-26
- SAVEPOINT SQL statement, F-103
- SAVEPOINT statement, F-103
- example of, 3-19
- examples, F-104
- purpose of, 3-19
- savepoints
- creating, F-103
- definition of, 3-19
- uses for, 3-19
- when erased, 3-20
- Scale
- using SQLPRC to extract, F-119
- scale
- definition of, 15-17, F-119
- using sqlprc() to extract, 15-17
- when negative, 15-17, F-119
- SCHEMA_NAMES OTT parameter, 19-34
- usage, 19-39
- scope
- of a cursor variable, 4-30
- of DECLARE STATEMENT directive, F-40
- of precompiler options, 10-7
- of the EXEC ORACLE statement, 10-10
- of WHENEVER statement, 9-29
- search condition
- definition of, 6-11
- in the WHERE clause, 6-11
- select descriptor, 13-25, 15-4
- definition of, 13-25
- information in, 13-26
- select list
- definition of, 6-8
- number of items in, 6-8
- using the free() function for, 15-37
- using the malloc() function for, 15-32
- SELECT SQL statement, F-104
- select SQLDA
- purpose of, 15-3
- SELECT statement, 6-8
- clauses available for, 6-9
- embedded SQL examples, F-108
- example of, 6-8
- INTO clause in, 6-8
- purpose of, 6-8
- testing, 6-9
- using host arrays in, 8-5
- WHERE clause in, 6-8
- SELECT_ERROR
- precompiler option, 6-9, 10-39
- semantic checking
- controlling with the SQLCHECK option, D-2
- definition of, D-2
- enabling, D-4
- with the SQLCHECK option, D-2
- separate precompilation
- guidelines for, 2-16
- referencing cursors for, 2-16
- restrictions on, 2-16
- specifying MAXOPENCURSORS for, 2-16
- using a single SQLCA with, 2-17
- server
- integration with PL/SQL, 7-2
- session
- definition of, 3-15
- sessions
- beginning, F-26
- SET clause
- in UPDATE statements, 6-10
- purpose of, 6-10
- use of subqueries in, 6-10
- SET DESCRIPTOR statement, 14-19, F-109
- SET TRANSACTION statement
- example of, 3-23
- purpose of, 3-23
- READ ONLY parameter in, 3-23
- requirements for, 3-23
- restrictions on, 3-23
- Size of an Integer and ROWID, E-2
- SQL
- benefits of, 1-4
- Embedded SQL, 1-4
- nature of, 1-4
- need for, 1-4
- SQL Communications Area, 9-2
- SQLCA, 9-16
- SQL Descriptor Area
- SQLDA, 13-25, 15-4
- SQL directives
- CONTEXT USE, 11-8, F-33
- DECLARE DATABASE, F-38
- DECLARE STATEMENT, F-39
- DECLARE TABLE, F-41
- DECLARE TYPE, F-43
- TYPE, F-112
- VAR, F-117
- WHENEVER, F-121
- SQL statements
- ALLOCATE, F-12
- ALLOCATE DESCRIPTOR TYPE, F-14
- CACHE FREE ALL, F-15
- CALL, 7-28, F-16
- CLOSE, F-18
- COMMIT, F-24
- concerns when executing, 6-6
- CONNECT, F-26
- CONTEXT ALLOCATE, F-28
- CONTEXT FREE, F-29
- CONTEXT OBJECT OPTION GET, F-31
- CONTEXT OBJECT OPTION SET, F-32
- DEALLOCATE DESCRIPTOR, F-34
- DELETE, F-44
- DESCRIBE, F-48
- DESCRIBE DESCRIPTOR, F-50
- ENABLE THREADS, F-51
- executable versus directive, 2-3
- EXECUTE, F-54
- EXECUTE ... END-EXEC, F-52
- EXECUTE IMMEDIATE, F-58
- FETCH, F-59
- FETCH DESCRIPTOR, F-62
- for defining and controlling transactions, 3-16
- for manipulating a cursor, 6-8, 6-12
- FREE, F-65
- INSERT, F-69
- LOB APPEND, F-72
- LOB ASSIGN, F-73
- LOB CLOSE, F-73
- LOB COPY, F-74
- LOB CREATE, F-74
- LOB DESCRIBE, F-75
- LOB DISABLE BUFFERING, F-76
- LOB ENABLE BUFFERING, F-77
- LOB ERASE, F-77
- LOB FILE CLOSE, F-78
- LOB FILE SET, F-78
- LOB FLUSH BUFFER, F-79
- LOB FREE TEMPORARY, F-80
- LOB LOAD, F-80
- LOB OPEN, F-81
- LOB READ, F-81
- LOB TRIM, F-82
- LOB WRITE, F-83
- OBJECT CREATE, F-83
- OBJECT DELETE, F-85
- OBJECT DEREF, F-85
- OBJECT FLUSH, F-87
- OBJECT GET, F-88
- OBJECT RELEASE, F-89
- OBJECT SET, F-90
- OBJECT UPDATE, F-91
- OPEN, F-92
- OPEN DESCRIPTOR, F-94
- optimizing to improve performance, C-5
- PREPARE, F-97
- REGISTER CONNECT, F-98
- ROLLBACK, F-100
- rules for executing, C-5
- SAVEPOINT, F-103
- SELECT, F-104
- SET DESCRIPTOR, F-109
- summary of, F-5
- types of, 2-3
- UPDATE, F-113
- SQL*Forms
- display error screen in, 20-8
- IAP constants in, 20-8
- returning values to, 20-8
- reverse return code switch in, 20-8
- SQL*Net
- connecting using Version 2, 3-4
- SQL*Plus, 1-4
- using to test SELECT statements, 6-9
- versus embedded SQL, 1-4
- SQL, dynamic, 2-5
- SQL_CURSOR, F-12
- SQL_SINGLE_RCTX
- defined constant, 5-53
- definition of, 5-48
- sqlald() function
- example of using, 15-22
- purpose of, 15-5
- syntax for, 15-5
- sqlaldt() function
- see SQLSQLDAAlloc, 5-54
- SQLCA, 9-2, 9-14
- components in, 9-20
- components set for a PL/SQL block, 9-23
- declaring, 9-17
- description of, 9-16
- explicit versus implicit checking of, 9-3
- including multiple times, 5-35
- overview of, 2-8
- SQLCABC component in, 9-20
- SQLCAID component in, 9-20
- sqlerrd, 9-22
- sqlerrd[2] component in, 9-21
- sqlerrmc component in, 9-21
- sqlerrml component in, 9-21
- sqlwarn, 9-22
- use in separate precompilations, 2-17
- using more than one, 9-16
- using with SQL*Net, 9-16
- sqlca.h
- listing of, 9-18
- use of SQLCA_STORAGE_CLASS with, 2-17
- SQLCAID component, 9-20
- SQLCDAFromResultSetCursor(), 5-54
- SQLCDAGetCurrent, 5-55
- sqlcdat()
- see SQLCDAFromResultSetCursor(), 5-54
- SQLCHECK option
- restrictions on, D-2
- usage notes for, 10-40
- what it affects, D-3
- SQLCHECK precompiler option, 10-39, 17-23, D-4, D-5
- SQLCHECK support for objects, 17-23
- sqlclu() function
- example of using, 15-37
- purpose of, 15-37
- syntax for, 15-37
- sqlclut() function
- see SQLSQLDAFree(), 5-54
- SQLCODE
- with MODE=ANSI, 10-32
- sqlcode
- component in SQLCA, 9-4, 9-15
- SQLCODE status variable
- declaring, 9-14
- when declared with the SQLCA, 9-14
- when used, 9-14
- sqlcpr.h, 9-24
- sqlcurt() function
- see SQLDAToResultSetCursor(), 5-54
- SQLDA
- bind versus select, 13-26
- C variable in, 15-11
- definition of, 13-26
- F variable in, 15-10
- I variable in, 15-10
- information stored in, 13-26
- L variable in, 15-8
- M variable in, 15-11
- N variable in, 15-7
- purpose of, 13-25
- S variable in, 15-10
- struct, contents of, 15-5
- structure of, 15-7
- T variable in, 15-9
- use in dynamic SQL method 4, 15-4
- V variable in, 15-8
- X variable in, 15-11
- Y variable in, 15-11
- Z variable in, 15-12
- sqlda.h, 15-3
- SQLDAToResultSetCursor(), 5-54
- SQLEnvGet function in SQLLIB, 5-48
- SQLEnvGet(), 5-55
- sqlerrd
- component, 9-15, 9-22
- sqlerrd[2] component, 9-15, 9-21
- returns N or rows fetched, 8-7
- use with data manipulation statements, 8-6
- sqlerrm
- component in the SQLCA, 9-4
- sqlerrmc component, 9-21
- sqlerrml component, 9-21
- SQLERROR
- WHENEVER directive condition, F-121
- SQLERROR condition
- in the WHENEVER statement, 9-25
- meaning of, 9-25
- SQLErrorGetText(), 5-54
- SQLExtProcError(), 5-55, 7-32
- sqlglm(), 9-24
- sqlglm() function, 9-23
- example of using, 9-24
- parameters of, 9-23
- sqlglmt()
- see SQLErrorGetText, 5-54
- sqlgls() function, 9-32
- example of use, 4-26
- sample program for, 9-35
- see SQLLIB
- function SQLStmGetText, 4-26
- sqlglst() function
- see SQLStmtGetText, 5-54
- SQLIEM function
- in user exits, 20-8
- purpose of, 20-8
- syntax for, 20-8
- sqlld2() function, 5-58
- sqlld2t() function
- see SQLLDAGetName, 5-54
- SQLLDAGetName, 5-54
- sqlldat() function
- see SQLCDAGetCurrent, 5-55
- SQLLIB
- and embedded SQL, 2-4
- extensions for OCI interoperability, 5-46
- function
- SQLCDAFromResultSetCursor, 5-54
- function SQLCDAGetCurrent, 5-55
- function SQLColumnNullCheck, 5-55
- function SQLDAFree, 5-54
- function SQLDAToResultSetCursor, 5-54
- function SQLEnvGet, 5-48, 5-55
- function SQLErrorGetText, 5-54
- function SQLExtProcError, 5-55, 7-32
- function SQLLDAGetName, 5-54
- function SQLNumberPrecV6, 5-55
- function SQLNumberPrecV7, 5-55
- function SQLRowidGet, 5-55
- function SQLStmtGetText(), 5-54
- function SQLSvcCtxGet, 5-49, 5-55
- function SQLVarcharGetLength, 4-25
- new names for functions, A-3
- new names for public functions, 5-53
- SQLLIB function
- SQLSQLDAAlloc, 5-54
- SQLVarcharGetLength, 5-55
- sqlnul() function
- example of using, 15-18
- purpose of, 15-18
- syntax for, 15-18
- use of with T variable, 15-9
- sqlnult() function
- see SQLColumnNullCheck(), 5-55
- SQLNumberPrecV6, 5-55
- SQLNumberPrecV7, 5-55
- sqlpr2() function, 15-17
- sqlpr2t() function
- see SQLNumberPrecV7, 5-55
- sqlprc() function, 15-16, 15-17
- sqlprct() function
- see SQLNumberPrecV6, 5-55
- SQLRowidGet(), 5-55
- SQLSQLDAAlloc, 5-54
- SQLSQLDAFree(), 5-54
- SQLSTATE
- class codes, 9-5
- declaring, 9-4
- mapping to Oracle errors, 9-7
- status codes, 9-7
- status variable, 9-2, 9-4
- using, 9-13
- values, 9-5
- with MODE=ANSI, 10-32
- SQLStmtGetText, 5-54
- SQLSvcCtxGet function in SQLLIB, 5-49
- SQLSvcCtxGet(), 5-55
- SQLVarcharGetLength, 5-55
- sqlvcp() function, see SQLLIB
- function SQLVarcharGetLength, 4-25
- sqlvcpt() function
- see SQLVarcharGetLength, 5-55
- sqlwarn
- flag, 9-22
- SQLWARNING
- WHENEVER directive condition, F-121
- SQLWARNING condition
- in the WHENEVER statement, 9-25
- meaning of, 9-25
- Standard Header Files, E-2
- statement-level rollback
- description of, 3-22
- to break deadlocks, 3-22
- status codes
- meaning of, 9-15
- status variables, 9-2
- STOP action
- in the WHENEVER statement, 9-26
- of WHENEVER directive, F-121
- result of, 9-26
- stored procedures
- program example, 7-24
- stored subprograms
- calling, 7-23
- creating, 7-21
- packaged versus standalone, 7-21
- stored versus inline, 7-21
- STRING datatype, 4-6
- string host variables
- declaring, 5-8
- Struct Component Alignment, E-2
- structs
- array of, 8-21, A-2
- as host variables, 4-43
- C, using, 17-44
- for collection object types, 18-4
- generating C structs for a REF, 17-45
- pointers as host variables, 4-51
- structs (structures)
- cannot be nested, 4-45
- structures (structs)
- nesting not permitted for host, 4-45
- subqueries
- definition of, 6-10
- example of, 6-10
- uses for, 6-10
- using in the SET clause, 6-10
- using in the VALUES clause, 6-10
- symbols
- defining, 2-15
- syntax checking
- controlling with the SQLCHECK option, D-2
- definition of, D-2
- syntax diagram
- description of, F-9
- how to read, F-9
- how to use, F-9
- symbols used in, F-9
- syntax, embedded SQL, 2-4
- SYS_INCLUDE
- system header files in C++, 12-5
- SYS_INCLUDE precompiler option, 10-40
- SYSDBA/SYSOPER Privileges, A-6
- System Configuration File, E-3
- system configuration file, 10-4
- system failure
- effect on transactions, 3-17
- System Global Area (SGA), 7-21
- system header files
- specifying the location of, 12-5
- system-specific Oracle documentation, 1-10, 2-17, 3-7, 5-32, 5-58, 20-1
- system-specific reference, 4-6, 10-3, 10-4, 10-27, 10-41
T
- T variable in SQLDA
- how value is set, 15-9
- purpose of, 15-9
- Table, 11-32
- table locks
- acquiring with LOCK TABLE, 3-25
- effect of, 3-26
- row share, 3-25
- when released, 3-26
- tables
- inserting rows into, F-69
- nested, 18-2
- updating rows in, F-113
- terminal
- encoding scheme, 4-53
- termination, program
- normal versus abnormal, 3-23
- THREADS
- precompiler option, 10-41, 11-7
- threads, F-28
- allocating context, 11-8, F-28
- enabling, 11-8, F-51
- freeing context, 11-10, F-29
- use context, 11-8
- TIMESTAMP datatype, 4-12
- TIMESTAMP WITH LOCAL TIME ZONE datatype, 4-13
- TIMESTAMP WITH TIME ZONE datatype, 4-13
- TO clause
- of ROLLBACK statement, F-101
- TO SAVEPOINT clause
- in ROLLBACK statement, 3-20
- purpose of, 3-20
- restriction on, 3-21
- Toolset
- Oracle, 20-14
- trace facility
- function of, C-6
- using to improve performance, C-6
- transaction processing
- overview of, 2-8
- statements used for, 2-8
- transaction processing monitor, 5-56
- transactions
- committing, F-24
- contents of, 2-8, 3-17
- definition of, 2-8
- description of, 3-16
- distributed, F-102
- failure during, 3-17
- guarding databases with, 3-16
- guidelines for, 3-28
- how to begin, 3-17
- how to end, 3-17
- making permanent, 3-18
- read-only, 3-23
- rolling back, F-100
- subdividing with savepoints, 3-19
- terminating, 3-18
- undoing, 3-20
- undoing parts of, 3-19
- when rolled back automatically, 3-17, 3-22
- transient copies of objects, 17-5
- transient objects, 17-5
- TRANSITIVE OTT parameter, 19-34
- truncated values
- detecting, 6-4, 7-14
- truncation error
- when generated, 6-6
- tuning, performance, C-2
- two-task
- linking, 2-17
- type checking at runtime, 17-23
- TYPE directive
- examples, F-113
- type inheritance, 17-3
- example, 17-26
- IS OF type operator, 17-3
- example, 17-3
- TREAT operator, 17-3
- example, 17-3, 17-4
- TYPE SQL directive, F-112
- TYPE_CODE
- precompiler option, 10-42
U
- undo a transaction, F-100
- Unicode character set, 5-9
- Unicode variables, A-5
- unions
- cannot be nested in host structures, 4-45
- not permitted as host structures, 4-45
- universal ROWID, 4-8, 4-41, A-5
- UNIX
- linking a Pro*C application under, 1-10
- UNSAFE_NULL precompiler option, 10-42
- UNSIGNED datatype, 4-10
- UPDATE SQL statement, F-113
- UPDATE statement
- embedded SQL examples, F-117
- example of, 6-10
- purpose of, 6-10
- SET clause in, 6-10
- using host arrays in, 8-15
- WHERE clause in, 6-10
- updating
- rows in tables and views, F-113
- use
- thread context, 11-8, F-33
- user configuration file
- to set precompiler options, 10-4
- User Exits, E-3
- user exits
- calling from a SQL*Forms trigger, 20-7
- common uses for, 20-3
- example of, 20-9
- guidelines for, 20-13
- kinds of statements allowed in, 20-4
- linking into IAP, 20-13
- meaning of codes returned by, 20-8
- naming, 20-13
- passing parameters to, 20-7
- requirements for variables in, 20-4
- running the GENXTB form, 20-12
- running the GENXTB utility for, 20-13
- use of IAF GET statements in, 20-5
- use of IAF PUT statements in, 20-6
- use of WHENEVER statement in, 20-9
- user session
- definition of, 3-15
- user-defined record, 7-5
- user-defined stored function
- used in WHERE clause, 6-11
- user-defined type equivalencing, F-112
- USERID option
- when required, 10-43
- USERID OTT parameter, 19-30
- USERID precompiler option, 10-43
- using with the SQLCHECK option, D-4
- usernames
- defining, 3-2
- using C structures, 17-44
- USING clause
- in CONNECT statement, 3-9
- in the EXECUTE statement, 13-13
- of FETCH statement, F-61
- of OPEN statement, F-93
- purpose of, 13-13
- using indicator variables in, 13-14
- using collection types, 17-45
- using dbstring
- Oracle Net database specification string, F-27
- Using REFs in Embedded SQL, 17-46
V
- V variable in SQLDA
- how value is set, 15-8
- purpose of, 15-8
- V7
- value of DBMS option, 10-17
- VALUES clause
- in INSERT statements, 6-10
- kinds of values allowed in, 6-10
- of embedded SQL INSERT statement, F-71
- of INSERT statement, F-71
- purpose of, 6-10
- requirements for, 6-10
- use of subqueries in, 6-10
- VAR directive
- examples, F-120
- VAR SQL directive, F-117
- VAR statement
- syntax for, 5-13, 5-14
- VARCHAR
- arrays of, 8-2
- VARCHAR datatype, 4-7
- VARCHAR precompiler option, 10-44
- VARCHAR pseudotype
- requirements for using with PL/SQL, 7-11
- VARCHAR variables
- advantages of, 4-22
- declaring, 4-22
- length member in, 4-22
- must be passed to a function by reference, 4-24
- specifying the length of, 4-22
- structure of, 4-22
- using macros to define length of, 5-29
- versus character arrays, 5-9
- VARCHAR2 datatype, 4-4, 5-15
- variables, 2-5
- cursor, 4-29
- host, 18-4
- indicator, 18-4
- VARNUM datatype, 4-7
- VARRAW datatype, 4-10
- varrays
- creation, 18-3
- varying length arrays, 18-3
- VERSION precompiler option, 10-45, 17-21
- views
- inserting rows into, F-69
- updating rows in, F-113
- VMS
- linking a precompiler application, 1-11
W
- warning flags
- use in error reporting, 9-15
- WHENEVER directive
- examples, F-122
- WHENEVER SQL directive, F-121
- WHENEVER statement
- automatic checking of SQLCA with, 9-25
- CONTINUE action in, 9-26
- DO action in, 9-26
- DO BREAK action in, 9-26
- DO CONTINUE action in, 9-26
- examples of, 9-27
- GOTO action in, 9-26
- guidelines for, 9-30
- maintaining addressability for, 9-32
- new actions, A-3
- NOT FOUND condition in, 9-25
- overview of, 2-8
- scope of, 9-29
- SQLERROR condition in, 9-25
- SQLWARNING condition in, 9-25
- STOP action in, 9-26
- use in user exits, 20-9
- using to avoid infinite loops, 9-31
- using to handle end-of-data conditions, 9-30
- where to place, 9-30
- WHERE clause
- host arrays in, 8-20
- if omitted, 6-11
- in DELETE statements, 6-11
- in SELECT statements, 6-8
- in UPDATE statements, 6-10
- purpose of, 6-11
- search condition in, 6-11
- WHERE CURRENT OF clause
- CURRENT OF clause, 6-21
- WORK option
- of COMMIT statement, F-25
- of ROLLBACK statement, F-101
X
- X variable in SQLDA
- how value is set, 15-11
- purpose of, 15-11
- XA interface, 5-56
- X/Open, 5-57
- application development, 5-56
Y
- Y variable in SQLDA
- how value is set, 15-11
- purpose of, 15-11
Z
- Z variable in SQLDA
- how value is set, 15-12
- purpose of, 15-12