この付録では、Oracle Rdbで準拠しているSQL規格について説明します。
B.1 ANSI/ISO/IEC SQL 1999規格
通常、Oracle Rdbリリース7.1ドキュメントでは、SQL:1999としてこの規格を参照しています。SQL:1999はSQL92規格に優先します。
SQL:1999の最小準拠レベルはCoreと呼ばれます。Core SQL:1999は、SQL92 Entry Level仕様のスーパーセットです。Oracle Rdbは、SQL:1999 Core仕様と広範な互換性があります。ただし、少数のSQL:1999 Core機能は現在Oracle Rdbに実装されていないか、Oracle Rdb実装とは異なります。オラクル社では、将来のリリースではSQL:1999 Core機能を完全にサポートしながら、既存のアプリケーションの上位互換性を提供することを公約しています。
さらに、Oracle RdbはANSI/ISO/IEC 9075-4:1999(Persistent Stored Modules)規格のほとんどに準拠しています。
SQL:1999 Coreの次の機能は現在Oracle Rdbでは使用できません。
ANSI規格のコピーは、次の宛先に申し込んでください。
American National Standards Institute
11 West 42nd Street
New York, NY 10036
USA
電話番号: 212.642.4900
FAX番号: 212.398.0023
Webサイトからも入手できます。URLは、次のとおりです。
http://webstore.ansi.org/ansidocstore/default.asp
SQL規格を含むANSI規格のサブセットは、X3またはNCITS規格です。これらは、次のURLのNational Committee for Information Technology Standards(NCITS)から入手できます。
http://www.cssinfo.com/ncitsquate.html
Oracle Rdbが完全にサポートしているCore SQL:1999機能を、表B-1に示します。
機能識別番号 | 機能 |
---|---|
E011 | 数値データ型 |
E021 | 文字データ型 |
E031 | 識別子 |
E051 | 基本問合せ仕様 |
E061 | 基本条件および検索条件 |
E071 | 基本問合せ式 |
E081 | 基本権限 |
E091 | 集合ファンクション |
E101 | 基本データ操作 |
E111 | 単一行のSELECT文 |
E121 | 基本カーソル・サポート |
E131 | NULL値のサポート(値のかわりのNULL) |
E141 | 基本整合性制約 |
E151 | 基本トランザクション・サポート |
E152 | 基本SET TRANSACTION文 |
E153 | 副問合せを持つ更新可能な問合せ |
E161 | 先頭に2つの負の符号を付けたSQL文のコメント |
E171 | SQLSTATEのサポート |
E182 | モジュール言語 |
F041 | 基本結合表 |
F081 | ビューのUNIONおよびEXCEPT |
F131 | グループ操作 |
F181 | 複数モジュールのサポート |
F201 | CASTファンクション |
F221 | 明示的なデフォルト |
F261 | CASE式 |
F311 | スキーマ定義文 |
F471 | スカラー副問合せの値 |
F481 | 拡張NULL条件 |
Oracle Rdbが部分的にサポートしているCore SQL:1999機能を、表B-2に示します。
機能識別番号 | 機能 | 部分的なサポート |
---|---|---|
F031 | 基本スキーマ | Oracle Rdbでは次の操作の副機能を完全にサポートしている。
Oracle Rdbでは次の副機能はサポートしていない。
|
F051 | 基本日付および時刻 | Oracle Rdbでは次の副機能を完全にサポートしている。
Oracle Rdbでは次の副機能はサポートしていない。
|
T321 | 基本SQL起動ルーチン | Oracle Rdbでは次の副機能を完全にサポートしている。
Oracle Rdbでは次の副機能はサポートしていない。
|
Oracle RdbがサポートしていないCore SQL:1999機能を、表B-3に示します。
機能識別番号 | 機能 |
---|---|
F021 | 基本情報スキーマ: この情報はOracle Rdbシステム表から入手可能 |
F501 | 機能および準拠するビュー |
F812 | 基本フラグ付け: Oracle RdbのSQLフラガーはSQL92を介してのみ表示 |
S011 | Distinctデータ型 |
Oracle Rdbリリース7.1では、SQLに次のSQL:1999機能を追加しています。
次のコマンドは、SQL:1999データベース言語規格セマンティクスの確立に使用できます。
次に例を示します。
SQL> SET DIALECT 'SQL99'; |
通常、SQL99言語のセマンティクスはSQL92と同じです。新機能が追加されたため、この2つの言語はセマンティクスが異なる場合があります。
次のコマンドは、この接続の現在の設定を示します。
SQL> SHOW CONNECTION <connectionname> |
次に例を示します。
SQL> show connection rdb$default_connection Connection: RDB$DEFAULT_CONNECTION Default alias is RDB$DBHANDLE Default catalog name is RDB$CATALOG Default schema name is SMITHI Dialect: SQL99 Default character unit: CHARACTERS Keyword Rules: SQL99 View Rules: ANSI/ISO Default DATE type: DATE ANSI Quoting Rules: ANSI/ISO Optimization Level: DEFAULT Hold Cursors default: WITH HOLD PRESERVE NONE Quiet commit mode: ON Compound transactions mode: EXTERNAL Default character set is DEC_MCS National character set is DEC_MCS Identifier character set is DEC_MCS Literal character set is DEC_MCS Display character set is UNSPECIFIED |
セッション変数DIALECT、DATE_FORMAT、QUOTING_RULESおよびKEYWORD_RULESも文字列SQL99を返すことができます。
次に例を示します。
SQL> declare :a, :b, :c, :d char(10); SQL> get environment (session) cont> :a = DIALECT, cont> :b = DATE_FORMAT, cont> :c = QUOTING_RULES, cont> :d = KEYWORD_RULES; SQL> print :a, :b, :c, :d; A B C D SQL99 SQL99 SQL99 SQL99 |