Oracle Database SQL言語リファレンス 11g リリース1(11.1) E05750-03 |
|
この付録では、SQL:2003規格へのOracleの規格準拠について説明します。SQL:2003規格の必須部分は、Core SQL:2003として知られ、SQL:2003のPart 2「Foundation」およびPart 11「Schemata」に記載されています。基礎的な機能は、Part 2のAnnex Fの「Feature taxonomy and definition for mandatory features of SQL/Foundation」表で分析されています。スキーマ機能は、Part 11のAnnex Eの「Feature taxonomy and definition for mandatory features of SQL/Schemata」表で分析されています。
この付録では、ANSI(米国規格協会)およびISO(国際標準化機構)によって確立されたSQL規格へのOracleの規格準拠について説明します(ANSIおよびISOのSQL規格は同一です)。
この付録では、次の内容を説明します。
SQLに関連するANSIのドキュメントは、次のとおりです。
これらの規格は、次の項に示す対応するISO規格と同一です。
ANSI規格のコピーについては、次の宛先に申し込んでください。
規格のコピーは、次のWebサイトからも入手できます。
http://webstore.ansi.org/ansidocstore/default.asp
SQL規格を含むANSI規格のサブセットは、INCITS規格です。これらは、INCITS(InterNational Committee for Information Technology Standards)から入手できます。URLは、次のとおりです。
http://www.incits.org/
SQLに関連するISOのドキュメントは、次のとおりです。
ISO規格のコピーについては、次の宛先に申し込んでください。
Webストアからも入手できます。URLは、次のとおりです。
http://www.iso.ch/iso/en/prods-services/ISOstore/store.html
ANSIおよびISOのSQL規格では、規格準拠性について明示する箇所に、準拠の種類および実装されている機能について記載することを義務付けています。規格準拠性についての最小限の明示をCore SQL:2003といいます。これは、規格のPart 2「SQL/Foundation」およびPart 11「SQL/Schemata」に定義されています。次の製品は、表B-1に示すCore SQL:2003に完全(または部分的)に準拠しています。
表B-1に、Oracleが完全にサポートするCore SQL:2003機能を示します。
表B-2に、Oracleが部分的にサポートするCore SQL:2003機能を示します。
Oracleには、表B-3で示す機能と同等の機能があります。
表B-4に、OracleがサポートしないCore SQL:2003機能を示します。
機能識別番号 | 機能 |
---|---|
F501 |
機能および準拠するビュー |
Oracleは、表B-5に示すSQL/Foundation:2003のオプション機能をサポートします。
表B-6に、Oracleが部分的にサポートするSQL/Foundation:2003のオプション機能を示します。
Oracleには、表B-7で示す機能と同等の機能があります。
OracleのODBCドライバは、SQL/CLI:2003に準拠しています。
OracleのPL/SQLは、キーワードの綴りや構成などの構文の小さな違いはありますが、SQL/PSM:2003と同等の機能を提供します。
OracleはSQL/MED:2003に準拠しません。
Oracle SQLJは、SQL/OLB 99に準拠していますが、SQL/OLB 2003にはまだ準拠していません。
このドキュメントのリリース時点では、新版のSQL/XML(SQL/XML:2006)を想定していますが、最終形式ではまだ使用できません。この項には、素案および公認の変更提案に基づいた、最も適切と考えられる内容が反映されています。ただし、SQL/XML:2006の最終形式には基づいていません。
規格のXMLデータ型はXML
です。Oracleの同等のデータ型は、XMLType
です。Oracleと規格の相違点がデータ型の名前の綴りのみである場合、規格の機能はOracleで完全にサポートされているとみなします。
表B-8に、XMLスキーマ組込み型からXQueryのOracle SQLデータ型へのマッピングを示します。
表B-9に、Oracleが完全にサポートする規格のXML機能を示します。
表B-9の注意事項: 機能X041〜X047(表の基本マッピング): Oracleの表のマッピングは、Javaインタフェースおよびパッケージを介して実行できます。Oracleの表のマッピングは、表のみでなく問合せもマップするために汎用化されています。表のみをマップするには、SELECT * FROM
table_name
を指定します。
表B-10に、部分的にサポートするSQL/XML:2005の機能を示します。
表B-11に、Oracleが同等の機能を介してサポートするSQL/XML:2005の機能を示します。
*正確な機能識別番号は、このドキュメントの公開時点では不明です。
表B-12に、OracleがサポートしないSQL/XML:2003の機能を示します。
*正確な機能識別番号は、このドキュメントの公開時点では不明です。
Oracleは、最新のFIPS(Federal Information Processing Standard)であるFIPS PUB 127-2に完全に準拠しています。現在、この規格は、公開されていません。ただし、FIPS 127-2で定義されたデータベース要素のサイズに関する情報に依存するアプリケーションを使用するユーザーのために、準拠性についての詳細を表B-13に示します。
注意1: UPDATE
文のSET
句の数とは、SET
キーワードの後に続くカンマで区切られる項目の数のことです。
注意2: FIPS PUBでは、列セットの長さを次の値の合計として規定しています。つまり、列の数を2倍した値、各文字列の長さ(バイト単位)、各真数値列の10進精度に1を加えた値、各概数値列の2進精度を4で割って1を加えた値の合計です。
注意3: 行の最大長に対するOracleの制限は、長さ2GBのLONG
値とそれぞれの長さが4000バイトである999のVARCHAR2
値を含む行の最大長に基づいています。2(254) + 231 + (999(4000))
注意4: 一意キー制約に対するOracleの制限は、Oracleデータ・ブロックのサイズ(初期化パラメータDB_BLOCK_SIZE
によって指定される)の半分からオーバーヘッドを引いたものになります。
注意5: Oracleは、GROUP
BY
句の列数やORDER
BY
句のソート指定の数に対して制限を設定しません。ただし、GROUP
BY
句やORDER
BY
句のすべての式のサイズの合計は、Oracleデータ・ブロックのサイズ(初期化パラメータDB_BLOCK_SIZE
によって指定される)からオーバーヘッドを引いたサイズに制限されています。
注意6: 同時にオープンできるカーソルの数に対するOracleの制限は、初期化パラメータOPEN_CURSORS
によって指定されます。このパラメータの最大値は、使用しているオペレーティング・システムで使用可能なメモリーによって異なりますが、どんな場合でも100を超えます。
Oracleでは、標準SQL以外でも様々な機能をサポートしています。Oracleアプリケーションでは、Core SQL:2003の使用と同様に、これらの拡張機能を使用できます。
他のSQL処理系へのアプリケーションの移植性を考慮する場合、OracleのFIPSフラガーを使用して、埋込みSQLプログラムでのEntry SQL92にOracleの拡張機能を位置付けてください。FIPSフラガーは、OracleプリコンパイラとSQL*Moduleコンパイラの一部です。
今回のリリースのOracle Databaseは、最新版のSQL規格であるSQL:2003に準拠しています。SQL-92(特にSQL-92のエントリ・レベル)またはSQL:1999は、SQL:2003に置き換えられているため、Oracleは、データベースの今回のリリースがこれらの以前の規格に準拠していることを正式に明示していません。SQL規格の新旧版の間(SQL-92とSQL:1999の間およびSQL:1999とSQL:2003の間の両方)に行われた一部の変更(大部分は小規模なもの)は、アプリケーションに影響を及ぼす可能性があります。影響のある非互換の詳細については、SQL規格またはこの規格に関する説明資料を参照してください。重要な情報の1つは、SQL/Foundation:1999およびSQL/Foundation:2003のAnnex Eです。
今回のリリースのOracle Databaseでは、以前の版のSQL構造を引続き使用できる場合があります。このようなサポートの多くは、ベンダーによる妥当な拡張機能として容認されています。これは、データベースのバージョン間の非互換性を最小限にするためのOracleの一般的な方針です。この方針に基づき、以前の形式が適している場合は、引続き保持されます。いずれにしても、以前のSQLとSQL:2003の間の差異(前述)はあまり重要ではありません。
Oracleは、ほとんどの各国語およびベンダー固有のエンコードされたキャラクタ・セットの規格をサポートしています。Oracleがサポートするキャラクタ・セットの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
Unicodeは、エンコードされたユニバーサル・キャラクタ・セットで、単一キャラクタ・セットを使用したすべての言語の情報を格納できます。Unicodeは、XML、Java、JavaScript、LDAPなどの最新の規格で必要です。Unicodeは、ISO/IEC規格10646に準拠しています。ISO/IEC規格10646のコピーについては、次の宛先に申し込んでください。
Oracle Databaseは、Unicode規格の最新バージョンであるUnicode 4.0に完全に準拠しています。この規格の最新情報については、次のUnicode ConsortiumのWebサイトを参照してください。
http://www.unicode.org
Oracleは、3つのデータベース・キャラクタ・セット(ASCIIベースのプラットフォーム用のUTF8とAL32UTF8、およびEBCDICプラットフォーム用のUTFE)によってエンコードされたUTF-8(8ビット)を使用します。Unicodeのサポートを段階的に実装する場合は、SQLのNCHAR
データ型(NCHAR
、NVARCHAR2
およびNCLOB
)に対して、Unicodeデータを、各国語キャラクタ・セットで、UTF-16またはUTF-8エンコード形式によって格納できます。
|
![]() Copyright © 1996, 2008, Oracle Corporation. All Rights Reserved. |
|