Oracle8 SQL Reference Release 8.0 A58225-01 |
|
This appendix discusses the following topics:
This section declares Oracle's conformance to the SQL standards established by these organizations:
Conformance with these standards is measured by the National Institute of Standards and Technology (NIST) "SQL Test Suite". NIST is an organization of the government of the United States of America.
Oracle8 conforms to Entry level conformance defined in the ANSI document, X3.135-1992, "Database Language SQL." You can obtain a copy of the ANSI standard from this address:
The ANSI and ISO SQL standards require conformance claims to state the type of conformance and the implemented facilities. The Oracle8 server, the Oracle Precompiler for Fortran Version 1.8.25, Oracle Precompilers for C/C++ Version 8.0.4, Oracle Precompiler for Cobol Version 8.0.4, and SQL*Module for ADA Version 8.0.4 provide conformance with the ANSI X3.135-1992/ISO 9075-1992 standard:
Oracle complies completely with FIPS PUB 127-2 for Entry SQL. In addition, the following information is provided for Section 16, "Special Procurement Considerations."
The Oracle precompilers support the use of embedded SQL in C, COBOL, and Fortran. SQL*Module supports the use of Module Language in ADA.
Oracle with SQL*Module supports Module Language for Ada. Oracle with the Oracle precompilers supports C, COBOL, and FORTRAN. The specific languages supported depend on your operating system.
Oracle8 with SQL*Plus Version 3.1 (as well as other Oracle tools) supports "direct invocation" of the following SQL commands, meeting the requirements of FIPS PUB 127-2:
Most other SQL commands described in this guide are also supported interactively.
Table B-1 lists requirements identified in FIPS PUB 127-1 and how they are met by Oracle8.
Oracle supports the ASCII character set (FIPS PUB 1-2) on most computers and the EBCDIC character set on IBM mainframe computers. Oracle supports both single-byte and multibyte character sets.
This section lists the additional features supported by Oracle that extend beyond standard SQL "Database Language SQL". This section provides information on these parts of the SQL language:
For information on the extensions to standard embedded SQL "Database Language Embedded SQL" supported by the Oracle Precompilers, see Pro*COBOL Precompiler Programmer's Guide, Pro*C/C++ Precompiler Programmer's Guide, and SQL*Module for Ada Programmer's Guide.
This section describes these additional commands and additional syntax and functionality of standard commands. Oracle supports these commands that are not part of Entry SQL92:
Oracle supports additional syntax for some commands that are part of Entry SQL92.
The COMMIT command supports these additional clauses:
Also, Entry SQL92 requires a COMMIT statement to include the WORK keyword. Oracle allows your COMMIT statements to either include or omit this keyword. This keyword adds no functionality to the command.
The CREATE TABLE command supports these additional parameters and clauses:
CONSTRAINT Clause The CONSTRAINT clause of the CREATE TABLE command supports these additional options and identifiers:
Column definitions in a CREATE TABLE command support these additional clauses:
In addition, columns may be defined using any Oracle predefined type, not just the Entry SQL92 datatypes. Oracle's extended datatypes are noted below. If a column's datatype is BLOB, CLOB, or NCLOB, then special LOB storage and index features can be specified in a CREATE TABLE command.
The CREATE VIEW command supports this additional syntax:
If you omit column names from a CREATE VIEW statement, the column aliases that appear in the defining query are used for columns of the view.
The DELETE command supports this additional syntax:
Also, Entry SQL92 requires a DELETE statement to include the FROM keyword. Oracle allows your DELETE statements to either include or omit this keyword. Note that this keyword adds no functionality to the command.
Oracle allows a DELETE command against a modifiable join view with exactly one key-preserved table in the join; SQL92 does not allow DELETE against a join view.
The GRANT command (System Privileges and Roles) is an extension to standard SQL.
The GRANT command (Object Privileges) supports the following other privileges on other objects in addition to the DELETE, INSERT, REFERENCES, SELECT, and UPDATE privileges on tables and views supported by Entry SQL92:
This command also supports granting object privileges to roles.
The INSERT command supports the use of database links to insert rows into tables and views on remote databases. The INSERT command supports this additional syntax:
The INSERT command supports a subquery in the INTO clause, similar to inserting into a view.
The INSERT command can insert into a modifiable join view that does not specify the WITH CHECK OPTION provided that all columns to be inserted are in the same key-preserved table of the join.
The ROLLBACK command supports these additional clauses:
Also, Entry SQL92 requires a ROLLBACK statement to include the WORK keyword. Oracle allows your ROLLBACK statements to either include or omit this keyword. This keyword adds no functionality to the command.
The SELECT command supports these additional clauses and syntax:
GROUP BY Clause The GROUP BY clause of the SELECT command supports this additional syntax and functionality:
ORDER BY Clause The ORDER BY clause of the SELECT command supports this additional syntax and functionality:
Subqueries Subqueries (i.e., forms of the SELECT command that appear inside other SQL statements), support this additional functionality:
The UPDATE command supports this additional syntax:
The UPDATE command also supports this additional functionality:
This section describes additional functions and additional functionality of standard functions.
The only Entry SQL92 functions are AVG, COUNT, MAX, MIN, and SUM. Oracle supports many additional functions that are not part of Entry SQL92. See "SQL Functions".
You can nest group functions in the select list of a SELECT statement, as in this example:
SELECT MIN(MAX(sal)) FROM emp GROUP BY deptno;
The depth of nesting cannot be more than that shown in the example.
You can also use a group function in a SELECT statement that queries a view whose defining query contains group functions or a GROUP BY clause.
This section describes additional operators and additional functionality of standard operators.
Oracle supports these operators that are not part of Entry SQL92:
¬
= comparison operators (inequality)
Oracle supports additional functionality for Entry SQL92 operators:
Pseudocolumns are values that behave like columns of a table but are not actually stored in the table. Pseudocolumns are supported by Oracle, but are not part of Entry SQL92. For a list of pseudocolumns, see "Pseudocolumns".
Oracle supports these additional datatypes that are not part of Entry SQL92:
Additionally, Oracle supports the following user-defined types that are not part of Entry SQL92:
Oracle also supports automatic conversion of values from one datatype to another that is not part of Entry SQL92.
Oracle supports additional functionality for names of schema objects:
Oracle allows you to use either uppercase "E" or lowercase "e" for exponential notation of numeric values, rather than only "E".
In your Oracle applications, you can use the extensions listed in the previous sections just as you can use Entry SQL92. If you are concerned with the portability of your applications to other implementations of SQL, use Oracle's FIPS Flagger to locate Oracle extensions to Entry SQL92 in your embedded SQL programs. The FIPS Flagger is part of the Oracle precompilers and the SQL*Module compiler. For information on how to use the FIPS Flagger, see Pro*COBOL Precompiler Programmer's Guide, Pro*C/C++ Precompiler Programmer's Guide, and SQL*Module for Ada Programmer's Guide.