CASE statements and expressions 90—97
CASE statements and expressions, CASE expressions 95
CASE statements and expressions, CASE in SQL statements 97
CASE statements and expressions, nested CASE statements 95
CASE statements and expressions, searched CASE statements 93
CASE statements and expressions, simple CASE statements 91
Case-insensitivity in PL/SQL 65
CASE_NOT_FOUND errors 92
CAST function 187
CAST function, converting numbers to and from strings 256
CAST function, using to convert between numbers and strings 256
CAST function, using with date and time values 297
CAST pseudo-function 383
CBO (cost-based optimizer) 853—859
certificates 907
CGA (Call Global Area) 1010
Chaining 925
Chaining (method) 1086
Chaining, CBC (Cipher Block Chaining) 927
Chaining, DBMS_CRYPTO chaining constants 926
CHAR datatype 170 191 193
CHAR datatype, assigning zero-length string to 71
CHAR datatype, converting hexadecimal string to type RAW 190
CHAR datatype, empty strings and 219
CHAR datatype, mixing with VARCHAR2 values 219—222
Character encodings, defined 1034
character encodings, Unicode 1036
Character functions, CHAR arguments 222
Character Large Objects see "CLOBs"
Character semantics 1045—1049
Character sets 64
Character sets, conversions 929
Character sets, converting strings between 189
Character sets, defined 1034
Character sets, national character set datatypes 1036
character sets, translating 229
Characters, dangerous characters in dynamic text 542
Characters, nonprintable, in code 197
CHARTOROWID function 187
Child blocks 57
chr function 222
CHR function, referencing nonprintable characters in code 197
Client-side PL/SQL 4
CLOBs (Character Large Objects) 170 400 403 see
CLOBs (Character Large Objects), applying SQL semantics to, temporary CLOB yielded by 423
CLOBs (Character Large Objects), empty versus NULL 405
CLOBs (Character Large Objects), reading from 409
CLOBs (Character Large Objects), using interchangeably with VARCHAR2 421
CLOBs (Character Large Objects), writing into 407
CLOSE cursor statements 464 486
CLOSE cursor statements, closing cursor variable 498
CLUSTER ... BY clause 614
CLUSTERED 614
Code examples, conventions used in xxxiii
Code examples, web site for downloads xxxv
Code injection see "SQL injection"
Code management 709—780
Code management in the database 710
Code management, compile-time warnings 735—746
Code management, data dictionary views for PL/SQL developers 710—721
Code management, debugging 766—774
Code management, edition-based redefinition 777—780
Code management, managing dependencies and recompiling code 721—735
Code management, protecting stored code 774
Code management, testing PL/SQL programs 746
Code management, tracing PLSQL execution 756—766
Code points 1036
Code points, defined 1034
Code units 1037
Code, creating and running 23—52
Code, creating and running, calling PLSQL from other languages 46—52
Code, creating and running, creating and editing source code 24
Code, creating and running, creating stored program 38
Code, creating and running, database navigation 23
Code, creating and running, dropping stored programs 44
Code, creating and running, editing environments for PL/SQL 45
Code, creating and running, error handling in SQL*Plus 36
Code, creating and running, executing stored program in SQL*Plus 41
Code, creating and running, grants and synonyms for stored programs 43
Code, creating and running, hiding source code of stored program 44
Code, creating and running, other SQL*Plus tasks 32
Code, creating and running, other SQL*Plus tasks, editing a statement 34
Code, creating and running, other SQL*Plus tasks, exiting SQL*Plus 34
Code, creating and running, other SQL*Plus tasks, loading custom environment at startup 35
Code, creating and running, other SQL*Plus tasks, saving output to file 33
Code, creating and running, other SQL*Plus tasks, setting your preferences 32
Code, creating and running, reasons to love and hate SQL*Plus 37
Code, creating and running, showing stored programs 42
Code, creating and running, using SQL*Plus 25
Code, minimizing redundancies in 495
CodeGen utility 19
Collection instance 329
collections 327—394
Collections of complex datatypes 370—374
Collections of complex datatypes, objects and other types 373
Collections of complex datatypes, records 371—373
Collections, accessing data in 364
Collections, as attributes of object type 339
Collections, as columns in database table 338
Collections, as components of a record 335
Collections, as datatype of function return value 337
Collections, as program parameters 335
Collections, built-in methods 341
Collections, caching, using function result cache 813
Collections, choosing collection type 340
Collections, comparison of collection types 340
Collections, concepts and terminology 328
Collections, converting types 188
Collections, COUNT method 343
Collections, declaring and initializing collection variables 355—359
Collections, declaring and initializing collection variables, initializing implicitly during direct assignment 356
Collections, declaring and initializing collection variables, initializing implicitly via FETCH 357
Collections, declaring collection types 350
Collections, DELETE method 343
Collections, EXISTS method 345
Collections, EXTEND method 345
Collections, FIRST and LAST methods 346
Collections, large, memory use and 1018
Collections, LIMIT method 347
Collections, multilevel 374—382
Collections, multilevel, extending string_tracker (example) 380
Collections, multilevel, multidimensional API (example) 378
Collections, multilevel, nesting of collections, levels of 382
Collections, multilevel, unnamed, emulating multidimensional arrays 376
Collections, multiset operations on nested tables, checking element membership 390
Collections, multiset operations on nested tables, high-level set operations 390
Collections, nested table multiset operations 387—393
Collections, nested table multiset operations, handling duplicates 392
Collections, nested table multiset operations, testing equality and membership 389
Collections, NULL 1120
Collections, populating with data 359—364
Collections, populating with data, advantages of nonsequential population 362
Collections, populating with data, aggregate assignments 360
Collections, populating with data, assigning rows from relational table 361
Collections, populating with data, specifying index values 360
Collections, populating with data, using assignment operator 360
Collections, PRIOR and NEXT methods 348
Collections, schema-level, maintaining 393
Collections, schema-level, maintaining, data dictionary entries for collections 394
Collections, string-indexed 365—370
Collections, TRIM procedure 349
Collections, types of 330
Collections, using a nested table 332
Collections, using a VARRAY 333
Collections, using an associative array 331
Collections, working with in SQL 382—387
Collections, working with in SQL, CAST pseudo-function 383
Collections, working with in SQL, MULTISET pseudo-function 384
Collections, working with in SQL, sorting collection contents 386
Collections, working with in SQL, TABLE pseudo-function 385
| Collections, working with using NDS 529—531
COLLECTION_IS_NULL exception 343
Column aliases in explicit cursors 484
Column objects 1110
Columns, bulk fetching of multiple columns 825
Columns, determining which column was altered 679
Columns, object types as datatype for 1110
Columns, RLS sensitive to 957
Columns, synchronization of local variables with 180
Command-line interpreters 25
Comments 75
comments, multiline 75
Comments, single-line 75
Comments, specifying for current transaction 451
COMMIT statements 451
COMMIT statements, releasing locks with 494
Compilation environment parameters 1002
Compilation, conditional see "Conditional compilation"
Compilation, native 14 1027
Compilation, recompiling invalid program units 731—735
Compile-time warnings 735—746
Compile-time warnings, enabling and specifying category 736
Compile-time warnings, reference listing of handy warnings 739—746
Compiler Directives 999—1001
Compiler settings for stored code 715
Compilers, limits on PL/SQL program size 986
Compilers, optimizing compiler 794—799
Compilers, PL/SQL and SQL 984
Complex datatypes 351
Complex datatypes, collections of 370—374
COMPOSE function 223 1040
Composite data 167
Compound triggers 15 652 670—673
Compound triggers, differences from packages 671
Compound triggers, order of firing 672
Compound triggers, resemblance to packages 670
CONCAT function 198 223
Concatenation operator (||) 65 198
Concatenation, binding versus, for dynamic SQL strings 538
Concatenation, inserting program values into SQL strings 526
conditional compilation 998—1009
Conditional compilation, $ERROR directive 1005
Conditional compilation, $IF directive 1004
Conditional compilation, examples of 999
Conditional compilation, inquiry directives 1000
Conditional compilation, program-specific settings with inquiry directives 1006
Conditional compilation, synchronizing code with packaged constants 1006
Conditional compilation, toggle tracing through conditional compilation flags 1000
Conditional compilation, working with postprocessed code 1008
Conditional control statements 8
Conditional control statements, CASE statements and expressions 90—97
Conditional control statements, CASE statements and expressions, CASE expressions 95
Conditional control statements, CASE statements and expressions, nested CASE statements 95
Conditional control statements, CASE statements and expressions, searched CASE statements 93
Conditional control statements, CASE statements and expressions, simple CASE statements 91
Conditional control statements, IF statements 81—90
Conditional control statements, IF statements, IF-THEN 82
Conditional control statements, IF statements, IF-THEN-ELSE 84
Conditional control statements, IF statements, IF-THEN-ELSIF 85
Connect identifiers (Oracle Net) 27
connection pools 970
Constants 167
constants, declaring 176
Constants, name conflicts in 740
constants, naming 167
Constants, specifying string constants 195
Constrained declarations 580
Constrained subtypes 182
CONSTRUCTOR FUNCTION keywords 1081
constructor methods 1079
Constructor methods, user-defined 1081
containers 167
CONTAINS predicate 425
Context-sensitive policies 956
continue statements 13 116
CONTINUE statements, understanding and using correctly 117
Contributors to this book, listed xxx
control statements 8
CONVERT function 189 223
Cookies, disabling or making persistent 912
Coordinated Universal Time see "UTC"
Cost-based optimizer (CBO) 853—859
COUNT function 341 343
CPAN (Comprehensive Perl Archive Network) 49
CREATE statements, CREATE FUNCTION 38
CREATE statements, wrapping in plain text and hex to hide source code 44
CREATE TABLE statements 673
CREATE TYPE statements 353
CREATE TYPE statements, creating object type 1076
CREATE TYPE statements, creating schema-level type 336
CREATE TYPE statements, FORCE option 13
cryptographic hashing 938
Cryptography see "DBMS_CRYPTO package" "Encryption"
currency conversions 1064—1066
Currency symbols 1211
CURRENT_DATE function 272
CURRENT_TIMESTAMP function 272
Cursor attributes 467—470
Cursor attributes for FORALL statements 831
Cursor attributes, %BULK_EXCEPTIONS 470
Cursor attributes, %BULK_ROWCOUNT 470
Cursor attributes, %FOUND 468
Cursor attributes, %ISOPEN 469
Cursor attributes, %NOTFOUND 469
Cursor attributes, %ROWCOUNT 469
Cursor attributes, defined 466
Cursor attributes, explicit cursor attributes 487
Cursor attributes, implicit cursor attributes for DML statements 444
Cursor attributes, implicit cursor attributes for DML statements, SQL%FOUND 444
Cursor attributes, implicit cursor attributes for DML statements, SQL%ROWCOUNT 445
Cursor attributes, implicit SQL cursor attributes 476
Cursor attributes, listed 467
Cursor attributes, using with cursor variables 498
Cursor expressions 464 509—512
Cursor expressions, restrictions on 512
Cursor expressions, using 510
Cursor FOR loops 102 112—115
Cursor FOR loops, declaring records 315
Cursor FOR loops, exiting properly 120
Cursor FOR loops, getting information on loop execution 121
Cursor FOR loops, implicit use of %ROWTYPE declaration 179
Cursor FOR loops, runtime optimization of 798
CURSOR operator 509
Cursor variables 173 463 496
Cursor variables, benefits of using 497
Cursor variables, declaring 499
Cursor variables, declaring REF CURSOR types 498
Cursor variables, defined 466
Cursor variables, fetching from 501
Cursor variables, fetching from, handling ROWTYPE_MISMATCH exception 502
Cursor variables, opening 500
Cursor variables, packages and 624
Cursor variables, passing as arguments in procedure or function calls 507
Cursor variables, passing table function results with 607
Cursor variables, restrictions on 509
Cursor variables, rules for 504
Cursor variables, rules for, aliases 505
Cursor variables, rules for, rowtype matching at compile-time 504
Cursor variables, rules for, rowtype matching at runtime 505
Cursor variables, rules for, scope of cursor object 506
Cursor variables, similarities to static cursors 498
Cursor variables, using with NDS 517
Cursor-based records, declaring 314
cursors 464
Cursors in package specification 625
Cursors, anchoring to 179
Cursors, choosing between explicit and implicit 471
Cursors, closing 1012
Cursors, data retrieval terminology 465
Cursors, DBMS_SQL.TO_CURSOR function 556
|