Tải bản đầy đủ (.pdf) (1,630 trang)

Oracle® Database SQL Language Reference ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (11.46 MB, 1,630 trang )


Oracle® Database
SQL Language Reference
11g Release 2 (11.2)
E26088-03
December 2012
Oracle Database SQL Language Reference, 11g Release 2 (11.2)
E26088-03
Copyright © 1996, 2012, Oracle and/or its affiliates. All rights reserved.
Primary Authors: Diana Lorentz, Mary Beth Roeser
Contributors: Sundeep Abraham, Angela Amor, Geeta Arora, Vikas Arora, Lance Ashdown, Hermann
Baer, Shrikanth Bellamkonda, Donna Carver, Dan Chiba, Timothy Chien, Alan Choi, Thierry Cruanes,
George Eadon, Amit Ganesh, Barb Glover, Naveen Gopal, Mike Hallas, Min-Hank Ho, Chandrasekharan
Iyer, Mark Jaeger, Vikram Kapoor, Peter Knaggs, Srinath Krishnaswamy, Andre Kruglikov, Paul Lane,
Huagang Li, Yunrui Li, Vince Liang, Bryn Llewellyn, Rich Long, Scott Lynn, Vineet Marwah, Jun
Matsuzawa, Robert McGuirk, Rahil Mir, Gopal Mulagund, Sujatha Muthulingam, Hanlin Qian, Ashish Ray,
John Russell, Laurent Schneider, Vivian Schupmann, Jia Shi, Ajeet Singh, Wayne Smith, Shanshan Song,
Vinay Srihari, Jim Stenoish, Sankar Subramanian, Seema Sundara, Mark van de Wiel, Badhri Varanasi,
William Waddington, Peter Wahl, Charles Wetherell, Sergiusz Wolicki, Daniel Wong, Tsae-feng Yu,
Mohamed Zait, Fred Zemke, Wei Zhang, Weiran Zhang
This software and related documentation are provided under a license agreement containing restrictions on
use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your
license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,
transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse
engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is
prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If
you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it
on behalf of the U.S. Government, the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software,


any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users
are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and
agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and
adaptation of the programs, including any operating system, integrated software, any programs installed on
the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to
the programs. No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in dangerous
applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other
measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages
caused by use of this software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of
their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks
are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD,
Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced
Micro Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information on content, products,
and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly
disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle
Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your
access to or use of third-party content, products, or services.
iii
Contents
Preface xxi
Audience xxi
Documentation Accessibility xxi
Related Documents xxi
Conventions xxii

What's New in the SQL Language Reference? xxiii
Oracle Database 11g Release 2 (11.2.0.2) New Features in the SQL Language Reference xxiii
Oracle Database 11g Release 2 (11.2.0.1) New Features in the SQL Language Reference xxiii
Oracle Database 11g Release 1 New Features in the SQL Language Reference xxv
1 Introduction to Oracle SQL
History of SQL 1-1
SQL Standards 1-1
How SQL Works 1-2
Common Language for All Relational Databases 1-2
Using Enterprise Manager 1-3
Lexical Conventions 1-3
Tools Support 1-3
2 Pseudocolumns
Hierarchical Query Pseudocolumns 2-1
CONNECT_BY_ISCYCLE Pseudocolumn 2-1
CONNECT_BY_ISLEAF Pseudocolumn 2-2
LEVEL Pseudocolumn 2-2
Sequence Pseudocolumns 2-3
Where to Use Sequence Values 2-3
How to Use Sequence Values 2-4
Version Query Pseudocolumns 2-5
COLUMN_VALUE Pseudocolumn 2-6
OBJECT_ID Pseudocolumn 2-7
iv
OBJECT_VALUE Pseudocolumn 2-8
ORA_ROWSCN Pseudocolumn 2-8
ROWID Pseudocolumn 2-9
ROWNUM Pseudocolumn 2-10
XMLDATA Pseudocolumn 2-11
3 Basic Elements of Oracle SQL

Data Types 3-1
Oracle Built-in Data Types 3-6
CHAR Data Type 3-9
NCHAR Data Type 3-9
NVARCHAR2 Data Type 3-9
VARCHAR2 Data Type 3-10
VARCHAR Data Type 3-10
NUMBER Data Type 3-10
FLOAT Data Type 3-12
Floating-Point Numbers 3-13
BINARY_FLOAT 3-13
BINARY_DOUBLE 3-13
Numeric Precedence 3-14
DATE Data Type 3-17
Using Julian Days 3-17
TIMESTAMP Data Type 3-18
TIMESTAMP WITH TIME ZONE Data Type 3-18
TIMESTAMP WITH LOCAL TIME ZONE Data Type 3-19
INTERVAL YEAR TO MONTH Data Type 3-19
INTERVAL DAY TO SECOND Data Type 3-20
Datetime/Interval Arithmetic 3-20
Support for Daylight Saving Times 3-22
Datetime and Interval Examples 3-23
RAW and LONG RAW Data Types 3-24
BFILE Data Type 3-26
BLOB Data Type 3-26
CLOB Data Type 3-26
NCLOB Data Type 3-27
Rowid Data Types 3-27
ROWID Data Type 3-27

UROWID Data Type 3-28
ANSI, DB2, and SQL/DS Data Types 3-28
User-Defined Types 3-30
Object Types 3-30
REF Data Types 3-30
Varrays 3-31
Nested Tables 3-31
Oracle-Supplied Types
3-31
Any Types 3-32
ANYTYPE 3-32
v
ANYDATA 3-32
ANYDATASET 3-32
XML Types 3-32
XMLType 3-32
URI Data Types 3-33
URIFactory Package 3-34
Spatial Types 3-34
SDO_GEOMETRY 3-34
SDO_TOPO_GEOMETRY 3-35
SDO_GEORASTER 3-35
Media Types 3-35
Expression Filter Type 3-36
Expression 3-37
Data Type Comparison Rules 3-37
Numeric Values 3-37
Date Values 3-37
Character Values 3-37
Object Values 3-40

Varrays and Nested Tables 3-40
Data Type Precedence 3-40
Data Conversion 3-40
Implicit and Explicit Data Conversion 3-40
Implicit Data Conversion 3-40
Implicit Data Conversion Examples 3-43
Explicit Data Conversion 3-43
Security Considerations for Data Conversion 3-44
Literals 3-45
Text Literals 3-46
Numeric Literals 3-47
Integer Literals 3-47
NUMBER and Floating-Point Literals 3-48
Datetime Literals 3-50
Interval Literals 3-53
INTERVAL YEAR TO MONTH 3-53
INTERVAL DAY TO SECOND 3-54
Format Models 3-56
Number Format Models 3-57
Number Format Elements 3-57
Datetime Format Models 3-60
Datetime Format Elements 3-60
Uppercase Letters in Date Format Elements 3-61
Punctuation and Character Literals in Datetime Format Models 3-61
Datetime Format Elements and Globalization Support 3-64
ISO Standard Date Format Elements 3-65
The RR Datetime Format Element 3-65
RR Datetime Format Examples 3-65
Datetime Format Element Suffixes 3-66
vi

Format Model Modifiers 3-66
Format Model Examples 3-67
String-to-Date Conversion Rules 3-69
XML Format Model 3-70
Nulls 3-71
Nulls in SQL Functions 3-71
Nulls with Comparison Conditions 3-71
Nulls in Conditions 3-72
Comments 3-72
Comments Within SQL Statements 3-72
Comments on Schema and Nonschema Objects 3-73
Hints 3-74
Alphabetical Listing of Hints 3-79
ALL_ROWS Hint 3-79
APPEND Hint 3-80
APPEND_VALUES Hint 3-80
CACHE Hint 3-81
CHANGE_DUPKEY_ERROR_INDEX Hint 3-81
CLUSTER Hint 3-82
CURSOR_SHARING_EXACT Hint 3-82
DRIVING_SITE Hint 3-82
DYNAMIC_SAMPLING Hint 3-82
FACT Hint 3-83
FIRST_ROWS Hint 3-83
FULL Hint 3-84
HASH Hint 3-84
IGNORE_ROW_ON_DUPKEY_INDEX Hint 3-84
INDEX Hint 3-85
INDEX_ASC Hint 3-86
INDEX_COMBINE Hint 3-86

INDEX_DESC Hint 3-86
INDEX_FFS Hint 3-87
INDEX_JOIN Hint 3-87
INDEX_SS Hint 3-87
INDEX_SS_ASC Hint 3-88
INDEX_SS_DESC Hint
3-88
LEADING Hint 3-89
MERGE Hint 3-89
MODEL_MIN_ANALYSIS Hint 3-90
MONITOR Hint 3-90
NATIVE_FULL_OUTER_JOIN Hint 3-90
NOAPPEND Hint 3-90
NOCACHE Hint 3-90
NO_EXPAND Hint 3-91
NO_FACT Hint 3-91
NO_INDEX Hint 3-91
NO_INDEX_FFS Hint 3-92
vii
NO_INDEX_SS Hint 3-92
NO_MERGE Hint 3-92
NO_MONITOR Hint 3-93
NO_NATIVE_FULL_OUTER_JOIN Hint 3-93
NO_PARALLEL Hint 3-93
NOPARALLEL Hint 3-93
NO_PARALLEL_INDEX Hint 3-93
NOPARALLEL_INDEX Hint 3-94
NO_PUSH_PRED Hint 3-94
NO_PUSH_SUBQ Hint 3-94
NO_PX_JOIN_FILTER Hint 3-94

NO_QUERY_TRANSFORMATION Hint 3-94
NO_RESULT_CACHE Hint 3-95
NO_REWRITE Hint 3-95
NOREWRITE Hint 3-95
NO_STAR_TRANSFORMATION Hint 3-95
NO_STATEMENT_QUEUING Hint 3-95
NO_UNNEST Hint 3-96
NO_USE_HASH Hint 3-96
NO_USE_MERGE Hint 3-96
NO_USE_NL Hint 3-96
NO_XML_QUERY_REWRITE Hint 3-97
NO_XMLINDEX_REWRITE Hint 3-97
OPT_PARAM Hint 3-97
ORDERED Hint 3-97
PARALLEL Hint 3-98
PARALLEL_INDEX Hint 3-100
PQ_DISTRIBUTE Hint 3-100
PUSH_PRED Hint 3-103
PUSH_SUBQ Hint 3-103
PX_JOIN_FILTER Hint 3-103
QB_NAME Hint 3-103
RESULT_CACHE Hint 3-104
RETRY_ON_ROW_CHANGE Hint 3-104
REWRITE Hint 3-104
STAR_TRANSFORMATION Hint 3-105
STATEMENT_QUEUING Hint 3-105
UNNEST Hint 3-106
USE_CONCAT Hint 3-106
USE_HASH Hint 3-106
USE_MERGE Hint 3-107

USE_NL Hint 3-107
USE_NL_WITH_INDEX Hint 3-108
Database Objects 3-108
Schema Objects 3-108
Nonschema Objects 3-109
Database Object Names and Qualifiers 3-109
viii
Database Object Naming Rules 3-109
Schema Object Naming Examples 3-113
Schema Object Naming Guidelines 3-113
Syntax for Schema Objects and Parts in SQL Statements 3-113
How Oracle Database Resolves Schema Object References 3-114
References to Objects in Other Schemas 3-115
References to Objects in Remote Databases 3-115
Creating Database Links 3-116
Database Link Names 3-116
Username and Password 3-117
Database Connect String 3-117
References to Database Links 3-117
References to Partitioned Tables and Indexes 3-118
References to Object Type Attributes and Methods 3-119
4 Operators
About SQL Operators 4-1
Unary and Binary Operators 4-2
Operator Precedence 4-2
Arithmetic Operators 4-3
Concatenation Operator 4-4
Hierarchical Query Operators 4-5
PRIOR 4-5
CONNECT_BY_ROOT 4-5

Set Operators 4-5
Multiset Operators 4-6
MULTISET EXCEPT 4-6
MULTISET INTERSECT 4-7
MULTISET UNION 4-8
User-Defined Operators 4-9
5 Functions
About SQL Functions 5-2
Single-Row Functions 5-3
Numeric Functions 5-3
Character Functions Returning Character Values 5-4
Character Functions Returning Number Values 5-5
NLS Character Functions 5-5
Datetime Functions 5-5
General Comparison Functions 5-6
Conversion Functions 5-6
Large Object Functions 5-7
Collection Functions 5-7
Hierarchical Functions 5-7
Data Mining Functions 5-7
XML Functions 5-8
Encoding and Decoding Functions 5-9
ix
NULL-Related Functions 5-9
Environment and Identifier Functions 5-9
Aggregate Functions 5-10
Analytic Functions 5-11
Object Reference Functions 5-17
Model Functions 5-17
OLAP Functions 5-17

Data Cartridge Functions 5-17
Alphabetical Listing of SQL Functions 5-17
ABS 5-18
ACOS 5-19
ADD_MONTHS 5-20
APPENDCHILDXML 5-21
ASCII 5-22
ASCIISTR 5-23
ASIN 5-24
ATAN 5-25
ATAN2 5-26
AV G 5-27
BFILENAME 5-29
BIN_TO_NUM 5-30
BITAND 5-32
CARDINALITY 5-34
CAST 5-35
CEIL 5-38
CHARTOROWID 5-39
CHR
5-40
CLUSTER_ID 5-42
CLUSTER_PROBABILITY 5-44
CLUSTER_SET 5-46
COALESCE 5-48
COLLECT 5-50
COMPOSE 5-51
CONCAT 5-52
CONVERT 5-53
CORR 5-55

CORR_* 5-57
CORR_S 5-58
CORR_K 5-59
COS 5-60
COSH 5-61
COUNT 5-62
COVAR_POP 5-64
COVAR_SAMP 5-66
CUBE_TABLE 5-67
CUME_DIST 5-69
CURRENT_DATE 5-71
x
CURRENT_TIMESTAMP 5-72
CV 5-73
DATAOBJ_TO_PARTITION 5-75
DBTIMEZONE 5-76
DECODE 5-77
DECOMPOSE 5-79
DELETEXML 5-80
DENSE_RANK 5-82
DEPTH 5-84
DEREF 5-85
DUMP 5-86
EMPTY_BLOB, EMPTY_CLOB 5-88
EXISTSNODE 5-89
EXP 5-90
EXTRACT (datetime) 5-91
EXTRACT (XML) 5-94
EXTRACTVALUE 5-95
FEATURE_ID 5-96

FEATURE_SET 5-97
FEATURE_VALUE 5-99
FIRST 5-101
FIRST_VALUE 5-103
FLOOR 5-105
FROM_TZ 5-106
GREATEST 5-107
GROUP_ID 5-108
GROUPING
5-109
GROUPING_ID 5-110
HEXTORAW 5-111
INITCAP 5-112
INSERTCHILDXML 5-113
INSERTCHILDXMLAFTER 5-115
INSERTCHILDXMLBEFORE 5-116
INSERTXMLAFTER 5-117
INSERTXMLBEFORE 5-118
INSTR 5-119
ITERATION_NUMBER 5-121
LAG 5-123
LAST 5-125
LAST_DAY 5-126
LAST_VALUE 5-127
LEAD 5-130
LEAST 5-132
LENGTH 5-133
LISTAGG 5-134
LN 5-136
LNNVL 5-137

xi
LOCALTIMESTAMP 5-139
LOG 5-140
LOWER 5-141
LPAD 5-142
LTRIM 5-143
MAKE_REF 5-144
MAX 5-145
MEDIAN 5-147
MIN 5-149
MOD 5-151
MONTHS_BETWEEN 5-152
NANVL 5-153
NCHR 5-154
NEW_TIME 5-155
NEXT_DAY 5-156
NLS_CHARSET_DECL_LEN 5-157
NLS_CHARSET_ID 5-158
NLS_CHARSET_NAME 5-159
NLS_INITCAP 5-160
NLS_LOWER 5-161
NLS_UPPER 5-162
NLSSORT 5-163
NTH_VALUE 5-166
NTILE 5-168
NULLIF 5-169
NUMTODSINTERVAL 5-170
NUMTOYMINTERVAL 5-171
NVL 5-172
NVL2 5-173

ORA_DST_AFFECTED 5-174
ORA_DST_CONVERT 5-175
ORA_DST_ERROR 5-176
ORA_HASH 5-177
PATH 5-178
PERCENT_RANK 5-179
PERCENTILE_CONT 5-181
PERCENTILE_DISC 5-184
POWER 5-186
POWERMULTISET 5-187
POWERMULTISET_BY_CARDINALITY 5-188
PREDICTION 5-190
PREDICTION_BOUNDS 5-192
PREDICTION_COST 5-194
PREDICTION_DETAILS 5-196
PREDICTION_PROBABILITY 5-198
PREDICTION_SET 5-200
PRESENTNNV 5-203
xii
PRESENTV 5-205
PREVIOUS 5-207
RANK 5-208
RATIO_TO_REPORT 5-210
RAWTOHEX 5-211
RAWTONHEX 5-212
REF 5-213
REFTOHEX 5-214
REGEXP_COUNT 5-215
REGEXP_INSTR 5-217
REGEXP_REPLACE 5-220

REGEXP_SUBSTR 5-223
REGR_ (Linear Regression) Functions 5-225
REMAINDER 5-230
REPLACE 5-231
ROUND (date) 5-232
ROUND (number) 5-233
ROW_NUMBER 5-235
ROWIDTOCHAR 5-237
ROWIDTONCHAR 5-238
RPAD 5-239
RTRIM 5-240
SCN_TO_TIMESTAMP 5-241
SESSIONTIMEZONE 5-243
SET 5-244
SIGN 5-245
SIN
5-246
SINH 5-247
SOUNDEX 5-248
SQRT 5-249
STATS_BINOMIAL_TEST 5-250
STATS_CROSSTAB 5-251
STATS_F_TEST 5-252
STATS_KS_TEST 5-254
STATS_MODE 5-255
STATS_MW_TEST 5-257
STATS_ONE_WAY_ANOVA 5-259
STATS_T_TEST_* 5-261
STATS_T_TEST_ONE 5-263
STATS_T_TEST_PAIRED 5-264

STATS_T_TEST_INDEP and STATS_T_TEST_INDEPU 5-265
STATS_WSR_TEST 5-267
STDDEV 5-268
STDDEV_POP 5-270
STDDEV_SAMP 5-272
SUBSTR 5-274
SUM 5-276
xiii
SYS_CONNECT_BY_PATH 5-278
SYS_CONTEXT 5-279
SYS_DBURIGEN 5-285
SYS_EXTRACT_UTC 5-286
SYS_GUID 5-287
SYS_TYPEID 5-288
SYS_XMLAGG 5-289
SYS_XMLGEN 5-290
SYSDATE 5-291
SYSTIMESTAMP 5-292
TAN 5-293
TANH 5-294
TIMESTAMP_TO_SCN 5-295
TO_BINARY_DOUBLE 5-296
TO_BINARY_FLOAT 5-298
TO_BLOB 5-299
TO_CHAR (character) 5-300
TO_CHAR (datetime) 5-301
TO_CHAR (number) 5-303
TO_CLOB 5-305
TO_DATE 5-306
TO_DSINTERVAL 5-308

TO_LOB 5-310
TO_MULTI_BYTE 5-311
TO_NCHAR (character) 5-312
TO_NCHAR (datetime) 5-313
TO_NCHAR (number) 5-314
TO_NCLOB 5-315
TO_NUMBER 5-316
TO_SINGLE_BYTE 5-317
TO_TIMESTAMP 5-318
TO_TIMESTAMP_TZ 5-319
TO_YMINTERVAL 5-321
TRANSLATE 5-323
TRANSLATE USING 5-324
TREAT 5-326
TRIM 5-327
TRUNC (date) 5-329
TRUNC (number) 5-330
TZ_OFFSET 5-331
UID 5-332
UNISTR 5-333
UPDATEXML 5-334
UPPER 5-336
USER 5-337
USERENV 5-338
VA L U E 5-340
xiv
VA R _ P O P 5-341
VA R _ S A M P 5-343
VARIANCE 5-344
VSIZE 5-346

WIDTH_BUCKET 5-347
XMLAGG 5-349
XMLCAST 5-351
XMLCDATA 5-352
XMLCOLATTVAL 5-353
XMLCOMMENT 5-354
XMLCONCAT 5-355
XMLDIFF 5-356
XMLELEMENT 5-358
XMLEXISTS 5-361
XMLFOREST 5-362
XMLISVALID 5-363
XMLPARSE 5-364
XMLPATCH 5-365
XMLPI 5-367
XMLQUERY 5-368
XMLROOT 5-370
XMLSEQUENCE 5-371
XMLSERIALIZE 5-373
XMLTABLE 5-375
XMLTRANSFORM 5-377
ROUND and TRUNC Date Functions
5-379
About User-Defined Functions 5-380
Prerequisites 5-381
Name Precedence 5-382
Naming Conventions 5-382
6 Expressions
About SQL Expressions 6-1
Simple Expressions 6-3

Compound Expressions 6-4
CASE Expressions 6-5
Column Expressions 6-6
CURSOR Expressions 6-7
Datetime Expressions 6-8
Function Expressions 6-10
Interval Expressions 6-10
Model Expressions 6-11
Object Access Expressions 6-13
Placeholder Expressions 6-14
Scalar Subquery Expressions 6-14
Type Constructor Expressions 6-14
Expression Lists 6-16
xv
7 Conditions
About SQL Conditions 7-1
Condition Precedence 7-3
Comparison Conditions 7-4
Simple Comparison Conditions 7-5
Group Comparison Conditions 7-6
Floating-Point Conditions 7-7
Logical Conditions 7-8
Model Conditions 7-9
IS ANY Condition 7-9
IS PRESENT Condition 7-10
Multiset Conditions 7-11
IS A SET Condition 7-12
IS EMPTY Condition 7-12
MEMBER Condition 7-13
SUBMULTISET Condition 7-13

Pattern-matching Conditions 7-14
LIKE Condition 7-14
REGEXP_LIKE Condition 7-18
Null Conditions 7-19
XML Conditions 7-20
EQUALS_PATH Condition 7-20
UNDER_PATH Condition 7-21
Compound Conditions 7-21
BETWEEN Condition 7-22
EXISTS Condition 7-22
IN Condition 7-23
IS OF type Condition 7-25
8 Common SQL DDL Clauses
allocate_extent_clause 8-2
constraint 8-4
deallocate_unused_clause 8-27
file_specification 8-29
logging_clause 8-38
parallel_clause 8-41
physical_attributes_clause 8-44
size_clause 8-47
storage_clause 8-48
9 SQL Queries and Subqueries
About Queries and Subqueries 9-1
Creating Simple Queries 9-2
Hierarchical Queries 9-3
Hierarchical Query Examples 9-5
The UNION [ALL], INTERSECT, MINUS Operators 9-8
xvi
Sorting Query Results 9-10

Joins 9-11
Join Conditions 9-11
Equijoins 9-11
Self Joins 9-12
Cartesian Products 9-12
Inner Joins 9-12
Outer Joins 9-12
Antijoins 9-14
Semijoins 9-14
Using Subqueries 9-14
Unnesting of Nested Subqueries 9-15
Selecting from the DUAL Table 9-16
Distributed Queries 9-16
10 SQL Statements: ALTER CLUSTER to ALTER JAVA
Types of SQL Statements 10-1
Data Definition Language (DDL) Statements 10-2
Data Manipulation Language (DML) Statements 10-2
Transaction Control Statements 10-3
Session Control Statements 10-3
System Control Statement 10-3
Embedded SQL Statements 10-3
How the SQL Statement Chapters are Organized 10-4
ALTER CLUSTER 10-5
ALTER DATABASE 10-9
ALTER DATABASE LINK 10-46
ALTER DIMENSION 10-48
ALTER DISKGROUP 10-51
ALTER FLASHBACK ARCHIVE 10-74
ALTER FUNCTION 10-77
ALTER INDEX 10-78

ALTER INDEXTYPE 10-97
ALTER JAVA 10-100
11 SQL Statements: ALTER LIBRARY to ALTER SYSTEM
ALTER LIBRARY 11-2
ALTER MATERIALIZED VIEW 11-3
ALTER MATERIALIZED VIEW LOG 11-18
ALTER OPERATOR 11-25
ALTER OUTLINE 11-28
ALTER PACKAGE 11-30
ALTER PROCEDURE 11-31
ALTER PROFILE 11-32
ALTER RESOURCE COST 11-35
ALTER ROLE 11-38
ALTER ROLLBACK SEGMENT 11-40
xvii
ALTER SEQUENCE 11-43
ALTER SESSION 11-45
Initialization Parameters and ALTER SESSION 11-50
Session Parameters and ALTER SESSION 11-51
ALTER SYSTEM 11-58
12 SQL Statements: ALTER TABLE to ALTER TABLESPACE
ALTER TABLE 12-2
ALTER TABLESPACE 12-91
13 SQL Statements: ALTER TRIGGER to COMMIT
ALTER TRIGGER 13-2
ALTER TYPE 13-4
ALTER USER 13-5
ALTER VIEW 13-12
ANALYZE 13-15
ASSOCIATE STATISTICS 13-23

AUDIT 13-27
CALL 13-40
COMMENT 13-44
COMMIT 13-47
14 SQL Statements: CREATE CLUSTER to CREATE JAVA
CREATE CLUSTER 14-2
CREATE CONTEXT 14-9
CREATE CONTROLFILE 14-12
CREATE DATABASE 14-19
CREATE DATABASE LINK 14-32
CREATE DIMENSION 14-37
CREATE DIRECTORY 14-42
CREATE DISKGROUP 14-44
CREATE EDITION 14-52
CREATE FLASHBACK ARCHIVE 14-56
CREATE FUNCTION 14-59
CREATE INDEX 14-61
CREATE INDEXTYPE 14-88
CREATE JAVA 14-92
15 SQL Statements: CREATE LIBRARY to CREATE SPFILE
CREATE LIBRARY 15-2
CREATE MATERIALIZED VIEW 15-4
CREATE MATERIALIZED VIEW LOG 15-27
CREATE OPERATOR 15-35
CREATE OUTLINE 15-38
CREATE PACKAGE 15-42
xviii
CREATE PACKAGE BODY 15-44
CREATE PFILE 15-46
CREATE PROCEDURE 15-48

CREATE PROFILE 15-50
CREATE RESTORE POINT 15-56
CREATE ROLE 15-59
CREATE ROLLBACK SEGMENT 15-62
CREATE SCHEMA 15-65
CREATE SEQUENCE 15-67
CREATE SPFILE 15-71
16 SQL Statements: CREATE SYNONYM to CREATE TRIGGER
CREATE SYNONYM 16-2
CREATE TABLE 16-6
CREATE TABLESPACE 16-82
CREATE TRIGGER 16-96
17 SQL Statements: CREATE TYPE to DROP ROLLBACK SEGMENT
CREATE TYPE 17-3
CREATE TYPE BODY 17-5
CREATE USER 17-7
CREATE VIEW 17-14
DELETE 17-26
DISASSOCIATE STATISTICS 17-34
DROP CLUSTER 17-36
DROP CONTEXT 17-38
DROP DATABASE 17-39
DROP DATABASE LINK 17-40
DROP DIMENSION 17-41
DROP DIRECTORY 17-42
DROP DISKGROUP 17-43
DROP EDITION 17-45
DROP FLASHBACK ARCHIVE 17-47
DROP FUNCTION 17-48
DROP INDEX 17-50

DROP INDEXTYPE 17-52
D R OP J AVA 17-53
DROP LIBRARY 17-54
DROP MATERIALIZED VIEW 17-55
DROP MATERIALIZED VIEW LOG 17-57
DROP OPERATOR 17-59
DROP OUTLINE 17-60
DROP PACKAGE 17-62
DROP PROCEDURE 17-64
DROP PROFILE 17-65
DROP RESTORE POINT 17-66
DROP ROLE
17-67
xix
DROP ROLLBACK SEGMENT 17-68
18 SQL Statements: DROP SEQUENCE to ROLLBACK
DROP SEQUENCE 18-2
DROP SYNONYM 18-3
DROP TABLE 18-5
DROP TABLESPACE 18-9
DROP TRIGGER 18-12
DROP TYPE 18-13
DROP TYPE BODY 18-15
DROP USER 18-16
DROP VIEW 18-18
EXPLAIN PLAN 18-20
FLASHBACK DATABASE 18-24
FLASHBACK TABLE 18-27
GRANT 18-33
INSERT 18-54

LOCK TABLE 18-72
MERGE 18-75
NOAUDIT 18-80
PURGE 18-84
RENAME 18-86
REVOKE 18-88
ROLLBACK 18-97
19 SQL Statements: SAVEPOINT to UPDATE
SAVEPOINT 19-2
SELECT 19-4
SET CONSTRAINT[S] 19-59
SET ROLE 19-61
SET TRANSACTION 19-64
TRUNCATE CLUSTER 19-67
TRUNCATE TABLE 19-69
UPDATE 19-73
A How to Read Syntax Diagrams
Graphic Syntax Diagrams A-1
Required Keywords and Parameters A-2
Optional Keywords and Parameters A-3
Syntax Loops A-3
Multipart Diagrams A-4
Database Objects A-4
B Automatic and Manual Locking Mechanisms During SQL Operations
Automatic Locks in DML Operations B-1
xx
Automatic Locks in DDL Operations B-4
Exclusive DDL Locks B-4
Share DDL Locks B-5
Breakable Parse Locks B-5

Manual Data Locking B-5
C Oracle and Standard SQL
ANSI Standards C-1
ISO Standards C-2
Oracle Compliance To Core SQL:2008 C-3
Oracle Support for Optional Features of SQL/Foundation:2008 C-9
Oracle Compliance with SQL/CLI:2008 C-21
Oracle Compliance with SQL/PSM:2008 C-21
Oracle Compliance with SQL/MED:2008 C-21
Oracle Compliance with SQL/OLB:2008 C-21
Oracle Compliance with SQL/JRT:2008 C-21
Oracle Compliance with SQL/XML:2008 C-21
Oracle Compliance with FIPS 127-2 C-26
Oracle Extensions to Standard SQL C-27
Oracle Compliance with Older Standards C-27
Character Set Support C-27
D Oracle Regular Expression Support
Multilingual Regular Expression Syntax D-1
Regular Expression Operator Multilingual Enhancements D-2
Perl-influenced Extensions in Oracle Regular Expressions D-3
E Oracle SQL Reserved Words and Keywords
Oracle SQL Reserved Words E-1
Oracle SQL Keywords E-3
F Extended Examples
Using Extensible Indexing F-1
Using XML in SQL Statements F-8
Index
xxi
Preface
This reference contains a complete description of the Structured Query Language

(SQL) used to manage information in an Oracle Database. Oracle SQL is a superset of
the American National Standards Institute (ANSI) and the International Organization
for Standardization (ISO) SQL:1999 standard.
This Preface contains these topics:
■ Audience
■ Documentation Accessibility
■ Related Documents
■ Conventions
Audience
The Oracle Database SQL Language Reference is intended for all users of Oracle SQL.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle
Accessibility Program website at
/>Access to Oracle Support
Oracle customers have access to electronic support through My Oracle Support. For
information, visit
or visit
if you are
hearing impaired.
Related Documents
For more information, see these Oracle resources:
■ Oracle Database PL/SQL Language Reference for information on PL/SQL, the
procedural language extension to Oracle SQL
■ Pro*C/C++ Programmer's Guide, Oracle SQL*Module for Ada Programmer's Guide, and
the Pro*COBOL Programmer's Guide for detailed descriptions of Oracle embedded
SQL
xxii
Many of the examples in this book use the sample schemas, which are installed by
default when you select the Basic Installation option with an Oracle Database
installation. Refer to Oracle Database Sample Schemas for information on how these

schemas were created and how you can use them yourself.
Conventions
The following text conventions are used in this document:
Convention Meaning
boldface Boldface type indicates graphical user interface elements associated
with an action, or terms defined in text or the glossary.
italic Italic type indicates book titles, emphasis, or placeholder variables for
which you supply particular values.
monospace Monospace type indicates commands within a paragraph, URLs, code
in examples, text that appears on the screen, or text that you enter.
xxiii
What's New in the SQL Language
Reference?
This section describes new features of Oracle Database 11g and provides pointers to
additional information.
For information on features that were new in earlier versions of Oracle Database, refer
to the documentation for the earlier release.
Oracle Database 11g Release 2 (11.2.0.2) New Features in the SQL
Language Reference
New Features in the SQL Language Reference
The following top-level SQL statements are enhanced in this release:
■ CREATE TABLE and ALTER TABLE now support the clause deferred_segment_
creation on page 16-32 for partitions and subpartitions. This lets you postpone
creation of a segment until the first row of data is inserted into the partition or
subpartition.
■ TRUNCATE TABLE has a new clause DROP ALL STORAGE on page 19-72 that lets
you deallocate all segments for a table. ALTER TABLE has a new clause DROP ALL
STORAGE on page 12-68 that lets you deallocate all segments for a partition or
subpartition.
Oracle Database 11g Release 2 (11.2.0.1) New Features in the SQL

Language Reference
Structural Changes in the SQL Language Reference
A number of sections of this book that were made up primarily of PL/SQL were
moved to Oracle Database PL/SQL Language Reference in Oracle Database 11g Release 1.
Please refer to "Structural Changes in the SQL Language Reference" on page xxvi for
details on this migration of material.
New Features in the SQL Language Reference
The following top-level SQL statements are new or enhanced in this release:
■ A new top-level SQL statement ALTER DATABASE LINK on page 10-46 lets you
update the fixed user password in a database link when the password of a
connection or authentication user has changed.
xxiv
■ The ALTER DISKGROUP statement has the following changes:
– A new disk_region_clause on page 10-65 lets you determine the Intelligent Data
Placement attribute of the disk group file.
– New diskgroup_volume_clauses on page 10-67 let you manipulate logical Oracle
ASM Dynamic Volume Manager (Oracle ADVM) volumes corresponding to
physical volume devices.
– Several new clauses let you control access to Oracle ASM files: usergroup_
clauses on page 10-69, user_clauses on page 10-69, file_permissions_clause on
page 10-70, and file_owner_clause on page 10-70.
■ AUDIT and NOAUDIT contain a new clause ALL STATEMENTS on page 13-30 that
lets you enable and disable auditing of all top-level SQL statements executed. In
AUDIT only, a new clause IN SESSION CURRENT on page 13-31 allows you to
limit auditing to the current session.
■ CREATE DISKGROUP and ALTER DISKGROUP have the following changes:
– A new clause QUORUM | REGULAR on page 14-46 let you designate a disk
or failure group as a quorum disk or failure group, which can contain the
voting file for Cluster Synchronization Services (CSS).
■ Two new statements, CREATE EDITION on page 14-52 and DROP EDITION on

page 17-45, let you use editions. An edition makes it possible to have two or more
versions of the same editionable objects in the database.
■ CREATE INDEXTYPE on page 14-88 and ALTER INDEXTYPE on page 10-97 have
a new clause WITH SYSTEM MANAGED STORAGE TABLES. This clause makes it
possible to create domain indexes in both range- and list-partitioned tables.
■ ALTER SESSION contains a new clause SYNC WITH PRIMARY on page 11-48 that
lets you synchronize the physical standby database with the primary database. A
new session parameter STANDBY_MAX_DATA_DELAY on page 11-53 lets you
specify a session-specific apply lag tolerance for queries to a physical standby
database that is in real-time query mode.
■ CREATE MATERIALIZED VIEW LOG has a new clause COMMIT SCN on
page 15-31 that instructs the database to use commit SCN data instead of
timestamps to refresh the materialized view, which improves the speed of the
refresh.
■ CREATE MATERIALIZED VIEW LOG and ALTER MATERIALIZED VIEW LOG have a
new clause mv_log_purge_clause on page 15-33 that lets you specify the purge time
for the materialized view log.
■ CREATE TABLE and ALTER TABLE are enhanced in the following ways:
– A new clause deferred_segment_creation on page 16-32 lets you postpone
creation of the table segment until the first row of data is inserted into the
table. This clause is also applicable to materialized views.
– The clause table_compression on page 16-34 has new syntax and terminology.
Use COMPRESS FOR OLTP to specify OLTP table compression. (In earlier
releases, the syntax was COMPRESS FOR ALL OPERATIONS.) Use COMPRESS
BASIC to specify basic table compression. (In earlier releases, the syntax was
COMPRESS FOR DIRECT_LOAD OPERATIONS and this type of compression
was called DSS table compression.)
– A new RESULT_CACHE Clause on page 16-62 lets you specify whether the
results of queries that name the table are considered for result caching.
xxv

– The nested_table_col_properties on page 16-48 provides a LOCAL keyword to
equipartition a nested table with partitioned base table. This is the default
behavior in this release. The default in earlier releases was not to equipartition
the nested table with the partitioned base table. Now you must specify the
GLOBAL keyword to store an unpartitioned nested table with a partitioned
base table.
■ The CREATE VIEW has a new keyword EDITIONING on page 17-17 that lets you
create an editioning view.
■ The statement GRANT on page 18-33 has a new EXECUTE object privilege on
directory objects. The ORACLE_LOADER access driver for external tables references
this privilege when deciding whether to execute a preprocessor program.
The following built-in functions are new or enhanced in this release:
■ For a specified measure, the function LISTAGG on page 5-134 orders data within
each group specified in an ORDER BY clause and then concatenates the values of
the measure column.
■ A new NTH_VALUE on page 5-166 function returns the value of a measure in a
specified row of a window of data.
■ Three new functions are useful when you are changing the time zone data file for
your database: ORA_DST_AFFECTED on page 5-174, ORA_DST_CONVERT on
page 5-175, and ORA_DST_ERROR on page 5-176.
The following miscellaneous features are new or enhanced in this release:
■ Hints, which were introduced in Oracle7, are now superseded by several Oracle
tools, including the SQL Tuning Advisor, SQL plan management, and SQL
Performance Analyzer. See "Hints" on page 3-74 for more information.
■ Beginning with Oracle Database 11g Release 2 (11.2.0.1), the PARALLEL,
PARALLEL_INDEX, NO_PARALLEL, and NO_PARALLEL_INDEX hints are
statement-level hints and supersede the earlier object-level hints. See "Note on
Parallel Hints" on page 3-98.
■ A new APPEND_VALUES Hint on page 3-80 lets you use direct-path INSERT
with the VALUES clause.

■ When specifying a redo log file, you can use the new keyword BLOCKSIZE Clause
on page 8-34 to override the operating system-dependent sector size.
■ The LOB_compression_clause on page 16-46 now has a new LOW setting, which
results in significantly higher decompression and compression speeds, at the cost
of a slightly lower compression ratio.
■ The subquery_factoring_clause on page 19-13 now supports recursive subquery
factoring (recursive WITH), which lets you query hierarchical data. This feature is
more powerful than CONNECT BY in that it provides depth-first search and
breadth-first search, and supports multiple recursive branches. A new search_clause
on page 19-14 and cycle_clause on page 19-14 let you specify an ordering for the
rows and mark cycles in the recursion.
Oracle Database 11g Release 1 New Features in the SQL Language

×