ヘッダーをスキップ

Oracle Database SQL言語リファレンス
11g リリース1(11.1)

E05750-03
目次
目次
索引
索引

戻る 次へ

B Oracleと標準SQL

この付録では、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規格は同一です)。

この付録では、次の内容を説明します。

ANSI規格

SQLに関連するANSIのドキュメントは、次のとおりです。

これらの規格は、次の項に示す対応するISO規格と同一です。

ANSI規格のコピーについては、次の宛先に申し込んでください。

American National Standards Institute
25 West 43rd Street
New York, NY 10036 USA
電話番号: +1.212.642.4900
FAX番号: +1.212.398.0023

規格のコピーは、次のWebサイトからも入手できます。

http://webstore.ansi.org/ansidocstore/default.asp

SQL規格を含むANSI規格のサブセットは、INCITS規格です。これらは、INCITS(InterNational Committee for Information Technology Standards)から入手できます。URLは、次のとおりです。

http://www.incits.org/

ISO規格

SQLに関連するISOのドキュメントは、次のとおりです。

ISO規格のコピーについては、次の宛先に申し込んでください。

International Organization for Standardization
1 Rue de Varembe
Case postale 56
CH-1211, Geneva 20, Switzerland
電話番号: +41.22.749.0111
FAX番号: +41.22.733.3430
URL: http://www.iso.ch/

Webストアからも入手できます。URLは、次のとおりです。

http://www.iso.ch/iso/en/prods-services/ISOstore/store.html

Core SQL:2003に対するOracleの準拠

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-1    完全にサポートするCore SQL:2003機能 
機能識別番号  機能 

E011 

数値データ型 

E031 

識別子 

E061 

基本的な述語および検索条件 

E081 

基本的な権限 

E091 

集合ファンクション 

E101 

基本的なデータ操作 

E111 

単一行のSELECT文 

E131 

NULL値のサポート(値のかわりのNULL) 

E141 

基本的な整合性制約 

E151 

トランザクションのサポート 

E152 

基本的なSET TRANSACTION文 

E153 

副問合せを持つ更新可能な問合せ 

E161 

先頭に2つの負の符号(-)を付けたSQL文のコメント 

E171 

SQLSTATEのサポート 

F041 

基本的な結合表 

F051 

基本的な日付および時刻 

F081 

ビューのUNIONおよびEXCEPT 

F131 

グループ操作 

F181 

複数モジュールのサポート 

F201 

CASTファンクション 

F221 

明示的なデフォルト 

F261 

CASE式 

F311 

スキーマ定義文 

F471 

スカラー副問合せの値 

F481 

拡張NULL述語 

T631 

1つのリスト要素を使用したIN述語 

表B-2に、Oracleが部分的にサポートするCore SQL:2003機能を示します。

表B-2    部分的にサポートするCore SQL:2003機能 
機能識別子、機能  部分的なサポート 

E021、文字データ型 

次の副機能を完全にサポートします。

  • E021-01、CHARACTERデータ型

  • E021-07、文字の連結

  • E021-08、UPPERおよびLOWERファンクション

  • E021-09、TRIMファンクション

  • E021-10、文字データ型間の暗黙的な加算

  • E021-12、文字の比較

次の副機能を部分的にサポートします。

  • E021-02、CHARACTER VARYINGデータ型(Oracleは、長さ0のVARCHAR列とNULLを区別しません)

  • E021-03、文字リテラル(Oracleは、長さ0のリテラル''をNULLとみなします)

Oracleは、次の副機能と同等の機能を持ちます。

  • E021-04、CHARACTER_LENGTHファンクションのかわりに、LENGTHファンクションを使用します。

  • E021-05、OCTET_LENGTHファンクションのかわりに、LENGTHBファンクションを使用します。

  • E021-06、SUBSTRINGファンクションのかわりに、SUBSTRファンクションを使用します。

  • E021-11、POSITIONファンクションのかわりに、INSTRファンクションを使用します。

 

E051、基本的な問合せ指定 

次の副機能を完全にサポートします。

  • E051-01、SELECT DISTINCT

  • E051-02、GROUP BY

  • E051-04、<SELECT構文のリスト>にない列をGROUP BYに含めることができます。

  • E051-05、SELECT構文のリスト項目の名前の変更

  • E051-06、HAVING

  • E051-07、SELECT構文のリストでの*の修飾

次の副機能を部分的にサポートします。

  • E051-08、FROM句の相関名(Oracleは、相関名をサポートしますが、オプションのASキーワードはサポートしません)

次の副機能はサポートされません。

  • E051-09、FROM句での列の名前の変更

 

E071、基本的な問合せ式 

次の副機能を完全にサポートします。

  • E071-01、UNION DISTINCT表演算子

  • E071-02、UNION ALL表演算子

  • E071-05、表演算子によって結合された列の型は同じでなくてもかまいません。

  • E071-06、副問合せの表演算子

Oracleは、次の副機能と同等の機能を持ちます。

  • E071-03、EXCEPT DISTINCT表演算子(EXCEPT DISTINCTのかわりにMINUSを使用します)

 

E121、基本的なカーソルのサポート 

次の副機能を完全にサポートします。

  • E121-01、DECLARE CURSOR

  • E121-02、ORDER BY列は、SELECT構文のリストになくてもかまいません。

  • E121-03、ORDER BY句の値の式

  • E121-04、OPEN

  • E121-06、位置付けされたUPDATE

  • E121-07、位置付けされたDELETE

  • E121-08、CLOSE

  • E121-10、FETCH文および暗黙的なNEXT

次の副機能を部分的にサポートします。

  • E121-17、WITH HOLDカーソル(規格では、カーソルはROLLBACK中は保持されませんが、OracleではROLLBACK中も保持されます。)

 

F031、基本的なスキーマ操作 

次の副機能を完全にサポートします。

  • F031-01、実表を作成するためのCREATE TABLE

  • F031-02、CREATE VIEW

  • F031-03、GRANT

次の副機能を部分的にサポートします。

  • F031-04、ALTER TABLE文のADD COLUMN句(Oracleは、この構文のオプションのキーワードCOLUMNをサポートしません)

次の副機能はサポートしません(Oracleは、キーワードRESTRICTをサポートしません)。

  • F031-13、DROP TABLE文のRESTRICT

  • F031-16、DROP VIEW文のRESTRICT

  • F031-19、REVOKE文のRESTRICT

 

F812、基本的なフラグ付け 

Oracleは、フラガーを持っていますが、SQL:2003よりもSQL-92に準拠しています。 

T321、基本的なSQL起動ルーチン 

次の副機能を完全にサポートします。

  • T321-03、ファンクションの起動

  • T321-04、CALL

Oracleは、次の副機能を異なる構文でサポートします。

  • T321-01、オーバーロードしないユーザー定義ファンクション

  • T321-02、オーバーロードしないユーザー定義プロシージャ

Oracleの構文CREATE FUNCTIONおよびCREATE PROCEDUREと規格の構文の違いは、次のとおりです。

  • 規格の構文では、パラメータのモード(INOUTまたはINOUT)はパラメータ名の前ですが、Oracle構文では、パラメータ名の後です。

  • 規格の構文では、INOUTを使用しますが、Oracleの構文では、IN OUTを使用します。

  • Oracleの構文では、復帰型の後およびルーチン本体の定義の前にISまたはASが必要ですが、規格の構文では、必要ありません。

  • ルーチンの本体がCである場合、そのルーチンに名前を付けるとき、規格の構文では、キーワードLANGUAGE C EXTERNAL NAMEを使用しますが、Oracleの構文では、LANGUAGE C NAMEを使用します。

  • ルーチンの本体がSQLである場合、Oracleでは、プロシージャを独自に拡張したPL/SQLを使用します。

Oracleは、次の副機能をPL/SQLではサポートしますが、Oracle SQLではサポートしません。

  • T321-05、RETURN

Oracleは、次の副機能と同等の機能を提供します。

  • T321-06、ROUTINESビュー: ALL PROCEDURESメタデータ・ビューを使用します。

  • T321-07、PARAMETERSビュー: ALL_ARGUMENTSメタデータ・ビューおよびALL _METHOD_PARAMSメタデータ・ビューを使用します。

 

Oracleには、表B-3で示す機能と同等の機能があります。

表B-3    Core SQL:2003機能と同等の機能 
機能識別子、機能  同等の機能 

F021、基本的な情報スキーマ 

Oracleは、この機能のビューを持ちませんが、同じ情報を別のメタデータ・ビューで使用可能にします。

  • TABLESのかわりに、ALL_TABLESを使用します。

  • COLUMNSのかわりに、ALL_TAB_COLUMNSを使用します。

  • VIEWSのかわりに、ALL_VIEWSを使用します。

    ただし、ユーザーのビューにWITH CHECK OPTIONが定義されていたり、更新可能な場合は、OracleのALL_VIEWSは表示されません。ビューにWITH CHECK OPTIONが定義されているかどうかを確認する場合は、ALL_CONSTRAINTSを使用し、TABLE_NAMEをそのビュー名にして、CONSTRAINT_TYPE'V'であるビューを検索します。

  • TABLE_CONSTRAINTSREFERENTIAL_CONSTRAINTSおよびCHECK_CONSTRAINTSのかわりに、ALL_CONSTRAINTSを使用します。

    ただし、OracleのALL_CONSTRAINTSは、制約が遅延可能か初期遅延かは表示しません。

 

S011、固有型 

固有型は、強い型指定のスカラー型です。固有型は、1つの属性のみを持つオブジェクト型を使用して、Oracleでエミュレートできます。USER_DEFINED_TYPESと呼ばれる規格の情報スキーマ・ビューは、Oracleのメタデータ・ビューALL_TYPESと同じです。 

T695、変換のサポート 

OracleのCONVERTファンクションでは、複数のキャラクタ・セット間での変換が可能です。Oracleには、キャラクタ・セットの変換を追加したり、削除する機能はありません。 

表B-4に、OracleがサポートしないCore SQL:2003機能を示します。

表B-4    サポートしないCore SQL:2003機能 
機能識別番号  機能 

F501 

機能および準拠するビュー 


注意:

Oracleは、「E182、モジュール言語」をサポートしません。この機能は、「SQL/Foundation」の表35に示されていますが、Coreにはモジュール言語と埋込み言語の選択肢があることが示されているのみです。モジュール言語および埋込み言語は、機能は同じで、SQL文がホスト・プログラミング言語と関連付けられている点のみが異なります。Oracleは、埋込み言語をサポートします。 


SQL/Foundation:2003のオプション機能に対するOracleのサポート

Oracleは、表B-5に示すSQL/Foundation:2003のオプション機能をサポートします。

表B-5    完全にサポートするSQL/Foundation:2003のオプション機能 
機能識別番号  機能 

B011 

埋込みADA 

B012 

埋込みC 

B013 

埋込みCOBOL 

B014 

埋込みFortran 

B021 

ダイレクトSQL

(OracleではSQL*Plus) 

F281 

LIKE拡張 

F411 

タイムゾーンの指定 

F421 

各国語キャラクタ 

F442 

集合ファンクションでの複合列の参照 

F491 

制約管理 

F555 

拡張秒精度

(Oracleは、小数点以下9桁までをサポートします) 

F561 

完全評価式 

F721 

遅延可能制約 

F731 

INSERT権限 

F781 

自己参照操作 

F801 

完全集合ファンクション 

S151 

型述語 

S161 

サブタイプ処理 

T201 

参照制約での比較可能データ型 

T351 

大カッコで囲まれたコメント 

T431 

拡張グループ化機能 

T441 

ABSおよびMODファンクション 

T611 

基本的なOLAP演算子 

T621 

拡張数値ファンクション 

表B-6に、Oracleが部分的にサポートするSQL/Foundation:2003のオプション機能を示します。

表B-6    部分的にサポートするSQL/Foundation:2003のオプション機能 
機能識別子、機能  部分的なサポート 

B031、基本的な動的SQL 

Oracleはこの機能をサポートしますが、次の制限事項があります。

  • Oracleは、記述子の項目のサブセットをサポートします。

  • <句による入力>の場合、Oracleは<入力記述子の使用>のみをサポートします。

  • <句による出力>の場合、Oracleは<記述子への出力>のみをサポートします。

  • 動的パラメータは、コロンの後に疑問符ではなく識別子を指定する形式で示されます。

 

B032、拡張動的SQL 

Oracleは、この機能からグローバル文およびグローバル・カーソルを宣言する機能のみを実装します。その他の機能はサポートしません。 

F034、拡張REVOKE文 

Oracleは、この機能の次の部分をサポートします。

  • F034-01、スキーマ・オブジェクトの所有者以外のユーザーによって実行されるREVOKE

  • F034-03、権限受領者がWITH GRANT OPTIONを持つ権限を取り消すREVOKE

Oracleは、この機能のうち、次の部分と同等の機能を提供します。

  • CASCADE: Oracleでは、REVOKEによってすべての依存オブジェクトが無効になります。これにより、この後にCREATEコマンドとGRANTコマンドによって、無効になったオブジェクトが正常に再コンパイルできるようになり、メタデータが変更されるまでは、これらのオブジェクトは完全に使用禁止になります。

 

F052、期間および日時の算術 

Oracleは、INTERVAL YEAR TO MONTHおよびINTERVAL DAY TO SECONDデータ型のみをサポートします。 

F111、SERIALIZABLE以外の分離レベル 

Oracleは、SERIALIZABLEに加えて、READ COMMITTED分離レベルをサポートします。 

F191、参照削除アクション 

Oracleは、ON DELETE CASCADEおよびON DELETE SET NULLをサポートします。 

F302、INTERSECT表演算子 

OracleはINTERSECTをサポートしますが、INTERSECT ALLはサポートしません。 

F312、MERGE文 

OracleのMERGE文は規格とほとんど同じですが、次の制限事項があります。

  • Oracleは、表の別名の前のASキーワード(オプション)をサポートしません。

  • Oracleは、表の別名の後にカッコで囲まれた列名のリストを使用して、USING句で指定した表の列名を変更する機能をサポートしません。

  • Oracleは、<上書き句>をサポートしません。

 

F391、長い識別子 

Oracleは、最大30文字の識別子をサポートします。 

F401、拡張結合表 

Oracleは、FULL外部結合をサポートします。 

F403、パーティション結合表 

Oracleは、FULL外部結合を除くこの機能をサポートします。 

F441、拡張集合ファンクション・サポート 

Oracleは、この機能の次の部分をサポートします。

  • ビューまたはインライン・ビューのいずれかで集計を使用して定義された列を参照するWHERE句の機能

  • 式のDISTINCTを使用しないCOUNT

  • 集計問合せに対する外部参照となる列を参照する集計

 

F461、名前付きのキャラクタ・セット 

Oracleは、Oracle定義の名前が付いた複数のキャラクタ・セットをサポートします。Oracleは、この機能の他の部分をサポートしません。 

F531、一時表 

Oracleは、GLOBAL TEMPORARY表をサポートします。 

F591、導出表 

Oracleは<導出表>をサポートしますが、次の制限事項があります。

  • Oracleは、表の別名の前のASキーワード(オプション)をサポートしません。

  • Oracleは、<導出列リスト>をサポートしません。

 

F831、完全カーソル更新 

Oracleは、問合せでのFOR UPDATE句とORDER BY句の組合せをサポートします。 

S111、問合せ式でのONLY 

Oracleは、ビューの階層に対するONLY句をサポートしますが、実表の階層はサポートしません。 

S162、参照のサブタイプ処理 

規格では参照する型の名前をカッコで囲む必要がありますが、Oracleはこの位置でのカッコの使用をサポートしません。 

T041、基本的なLOBデータ型サポート 

Oracleは、この機能の次の部分をサポートします。

  • キーワードBLOBCLOBおよびNCLOB

  • 連結(CLOBでのUPPERLOWERおよびTRIM

Oracleは、この機能のうち、次の部分と同等のサポートを提供します。

  • POSITIONのかわりにINSTRの使用

  • CHAR_LENGTHのかわりにLENGTHの使用

  • SUBSTRINGのかわりにSUBSTRの使用

Oracleは、この機能の次の部分をサポートしません。

  • BLOBCLOBおよびNCLOBのそれぞれのシノニムとしてのキーワードBINARY LARGE OBJECTCHARACTER LARGE OBJECTまたはNATIONAL CHARACTER LARGE OBJECT

  • <バイナリ文字列リテラル>

  • LOBやCLOBの長さの上限を指定する機能

  • BLOBの結合

 

T111、更新可能な結合、論理和および列 

Oracleの更新可能な結合ビューは、規格の更新可能な結合機能のサブセットです。 

T121、問合せ式でのWITHRECURSIVEを除く) 

Oracleはこの機能をサポートします。ただし、<問合せの名前>の後に続く列名の変更機能はサポートしません。かわりに、<問合せの名前>の定義である問合せの<SELECT構文のリスト>の列名を変更できます。 

T122、副問合せでのWITHRECURSIVEを除く) 

機能T121と同じ制限事項があります。 

T211、基本的なトリガー機能 

Oracleのトリガーと規格のトリガーの違いは、次のとおりです。

  • Oracleは、デフォルトではオプションの構文FOR EACH STATEMENT(文トリガー)を提供しません。

  • Oracleは、OLD TABLEおよびNEW TABLEをサポートしません。規格で指定されている遷移表(影響される行のイメージの前後の多重集合)は使用できません。

  • トリガー本体はPL/SQLで記述されています。PL/SQLの機能は規格の手続き型言語PSMと同等ですが、同じものではありません。

  • トリガー本体では、古い遷移変数と新しい遷移変数が、コロンで始まる形式で参照されます。

  • Oracleの行トリガーは、バッファリングおよびすべての行の処理後にまとめて実行されるのではなく、行の処理と同時に実行されます。規格のセマンティクスは決定的ですが、Oracleのリアルタイムで実行される行トリガーはより実用的です。

  • Oracleの行および文の前のトリガーではDML文を実行できますが、規格では許可されていません。これに対し、Oracleの行の後の文ではDML文を実行できませんが、規格では許可されています。

  • 複数のトリガーが適用される場合、規格ではそれらのトリガーは定義順に実行されます。Oracleでは、実行順序は非決定的です。

  • Oracleでは、規格の(表権限の)TRIGGER権限のかわりに、システム権限CREATE TRIGGERおよびCREATE ANY TRIGGERを使用してトリガーの作成を規制します。

 

T271、セーブポイント 

Oracleはこの機能をサポートしますが、次の制限事項があります。

  • Oracleは、RELEASE SAVEPOINTをサポートしません。

  • Oracleは、セーブポイント・レベルをサポートしません。

 

T331、基本的なロール 

Oracleは、REVOKE ADMIN OPTION FORの<ロール名>を除いて、この機能をサポートします。 

T432、ネストおよび連結したGROUPING SETS 

Oracleは、連結したGROUPING SETSをサポートしますが、ネストしたGROUPING SETSはサポートしません。 

T591、NULLの可能性のある列に対するUNIQUE制約 

Oracleでは、NULLであることが可能な1つ以上の列に対するUNIQUE制約が可能です。UNIQUE制約の対象が単一列の場合、セマンティクスは規格と同じになります(この制約には、指定した列のNULLである行の数に制限はありません)。UNIQUE制約の対象が2つ以上の列の場合、セマンティクスは規格外になります。Oracleでは、指定したすべての列のNULLである行の数に制限はありません。規格と異なり、指定した列の1つ以上の行がNULL以外になる場合、制約対象のNULL以外の列の値と同じ値を持つ別の行は、制約違反になり、許可されません。 

T612、拡張OLAP操作 

Oracleは、この機能の次の要素をサポートします。PERCENT_RANKCUME_DISTWIDTH_BUCKET、仮想の集合ファンクション、PERCENTILE_CONTおよびPERCENTILE_DISCです。

Oracleは、この機能の次の要素をサポートしません。

  • ウィンドウ名

  • ORDER BY句のないROW_NUMBER

 

T641、複数列の割当て 

割当てソースが副問合せの場合、複数の列を割り当てる規格の構文がサポートされます。 

Oracleには、表B-7で示す機能と同等の機能があります。

表B-7    SQL/Foundation:2003のオプション機能と同等の機能 
機能識別子、機能  同等の機能 

B031、基本的な動的SQL 

Oracleの埋込みプリプロセッサはこの機能を実装していますが、次の変更が加えられています。

  • パラメータは、コロンの後に疑問符ではなく識別子を指定する形式で示されます。

  • 規格のDESCRIBE OUTPUTは、OracleのDESCRIBE SELECT LIST FOR文に置き換えられます。

  • Oracleでは、動的SQL文を準備するPREPARE文の前に、その動的SQL文を使用して物理的にカーソルを宣言する場合、DECLARE STATEMENTを使用できます。

 

B032、拡張動的SQL 

OracleのDESCRIBE BIND VARIABLESは、規格のDESCRIBE INPUTと同等です。Oracleは、この機能のこれ以外のものを実装しません。 

B122、ルーチン言語C 

Oracleは、Cで記述された外部ルーチンをサポートしますが、このようなルーチンを作成する規格構文はサポートしません。 

F032、CASCADE削除動作 

Oracleでは、DROPコマンドによって削除されたオブジェクトのすべての依存オブジェクトが無効になります。無効になったオブジェクトを正常に再コンパイルできる方法を使用して、削除されたオブジェクトを再定義するまで、無効になったオブジェクトは完全に使用禁止になります。 

F033、ALTER TABLE文のDROP COLUMN句 

OracleはDROP COLUMN句を提供しますが、規格で使用されるRESTRICTまたはCASCADEオプションは提供しません。 

F121、基本的な診断管理 

この機能の大部分の機能は、埋込み言語のSQLCAによって提供されます。 

F231、権限表 

Oracleは、この情報を次のメタデータ・ビューで使用可能にします。

  • TABLE_PRIVILEGESのかわりに、ALL_TAB_PRIVSを使用します。

  • COLUMN_PRIVILEGESのかわりに、ALL_COL_PRIVSを使用します。

  • OracleはUSAGE権限をサポートしないため、USAGE_PRIVILEGESと同等の権限は存在しません。

 

F341、使用状況表 

Oracleは、この情報をALL_DEPENDENCIESDBA_DEPENDENCIESおよびUSER_DEPENDENCIESビューで使用可能にします。 

F381、拡張スキーマ操作 

Oracleは、この機能の次の要素を完全にサポートします。

  • Oracleは、ALTER TABLEを使用して、表の制約を追加する規格の構文をサポートします。

Oracleは、この機能の次の要素を部分的にサポートします。

  • Oracleは、表の制約を削除する規格の構文をサポートしますが、RESTRICTはサポートしません。

Oracleは、この機能のうち、次の要素と同等の機能を提供します。

  • 列のデフォルト値を変更するには、ALTER TABLEMODIFYオプションを使用します。

Oracleは、この機能の次の部分をサポートしません。

  • DROP SCHEMA

  • ALTER ROUTINE

 

F93、リテラルのUnicodeエスケープ 

OracleのUNISTR機能は、すべてのUnicode文字に対する数値のエスケープ・シーケンスをサポートします。 

F402、LOB、配列および多重集合での名前列の結合 

Oracleは、宣言した型がネストした表である列での名前付き列の結合をサポートします。Oracleは、LOBまたは配列での名前付き列の結合はサポートしません。 

F571、真理値テスト 

OracleのLNNVLファンクションは、規格のIS NOT TRUEと似ています。 

F690、照合サポート 

Oracleは、文字式の照合の変更に使用可能なファンクションを提供します。 

F695、変換のサポート 

OracleのCONVERTファンクションは、キャラクタ・セット間での変換に使用できます。 

F771、結合管理 

OracleのCONNECT文は規格のCONNECT文と同じ機能を持ちますが、構文は異なります。規格のSET CONNECTIONを使用するかわりに、OracleではSQL文を実行する必要のある接続を指定するAT句を提供します。Pro*COBOLでは、COMMITまたはROLLBACKRELEASEオプションを使用して接続を切断できます。 

S023、基本的な構造型 

Oracleのオブジェクト型は、規格の構造型と同等です。 

S025、最終構造型 

Oracleの最終オブジェクト型は、規格の最終構造型と同等です。 

S026、自己参照構造型 

Oracleでは、オブジェクト型OTは、OTを参照する参照を持つことができます。 

S041、基本的な参照型 

Oracleの参照型は、規格の参照型と同等です。 

S051、型の表の作成 

Oracleのオブジェクト表は、規格の構造型の表と同等です。 

S081、サブテーブル 

Oracleはオブジェクト・ビューの階層をサポートしますが、オブジェクトの実表の階層はサポートしません。実表の階層をエミュレートするには、それらの実表にビューの階層を作成します。 

S091、配列型 

OracleのVARRAY型は、規格の配列型と同等です。ただし、Oracleは、LOBの配列の記憶域をサポートしません。添字を使用して配列の単一要素にアクセスするには、PL/SQLを使用する必要があります。Oracleは、規格以外の構文を使用してこの機能の次の部分をサポートします。

  • 空の配列を含むVARRAY型のインスタンスを構成するには、VARRAY型コンストラクタを使用します。

  • FROM句でVARRAYをネスト解除するには、TABLE演算子を使用します。

 

S092、ユーザー定義型の配列 

Oracleは、オブジェクト型のVARRAYをサポートします。 

S094、参照型の配列 

Oracleは、参照のVARRAYをサポートします。 

S095、問合せ別の配列コンストラクタ 

Oracleは、CAST (MULTISET (SELECT ...) AS varray_type)を使用して配列コンストラクタをサポートします。ORDER BYを使用して配列の要素を順序付ける機能はサポートされません。 

S097、配列要素割当て 

PL/SQLでは、規格(SQL/PSM)に似た構文を使用して配列要素を割り当てることができます。 

S201、配列でのSQL起動ルーチン 

PL/SQLは、配列をパラメータとして渡し、ファンクションの結果として配列を返す機能を提供します。 

S202、多重集合でのSQL起動ルーチン 

PL/SQLルーチンは、パラメータとしてネストした表を持つことができます。

PL/SQLルーチンは、ネストした表を戻すことができます。 

S233、多重集合ロケータ 

Oracleは、ネストした表のロケータをサポートします。 

S241、変換ファンクション 

Oracle Type Translator(OTT)は、変換と同じ機能を提供します。 

S251、ユーザー定義の順序付け 

Oracleのオブジェクト型の順序付け機能は、次のとおり規格の機能に対応します。

  • OracleのMAP順序付けは、規格のORDER FULL BY MAP順序付けに対応します。

  • OracleのORDER順序付けは、規格のORDER FULL BY RELATIVE順序付けに対応します。

  • Oracleのオブジェクト型でMAPまたはORDERのいずれも宣言されていない場合、これは規格のEQUALS ONLY BY STATEに対応します。

  • Oracleには、順序付けられていないオブジェクト型は存在しません。そのため、順序付けは変更できますが、削除することはできません。

 

S271、基本的な多重集合のサポート 

Oracleでは、ネストした表型として規格の多重集合がサポートされます。スカラー型(ST)に基づいたOracleのネストした表のデータ型は、規格の用語では、ST型の単一フィールドを持つcolumn_valueという名前の行の多重集合と同じです。オブジェクト型に基づいたOracleのネストした表型は、規格の構造型の多重集合と同等です。

Oracleは、ネストした表で使用するこの機能のうち、次の要素をサポートします。この場合、規格で多重集合に使用するのと同じ構文を使用します。

  • CARDINALITYファンクション

  • SETファンクション

  • MEMBER述語

  • IS A SET述語

  • COLLECT集計

次のように、この機能の他のすべての部分が規格以外の構文でサポートされます。

  • 規格にMULTISET[]と表される、空の多重集合を作成するには、ネストした表型の空のコンストラクタを使用します。

  • 規格では、ELEMENT(<多重集合値の式>)と表される、要素が1つ付いた多重集合の要素を1つのみ取得するには、スカラー副問合せを使用して、ネストした表から単一要素を選択します。

  • 多重集合を列挙ごとに構成するには、ネストした表型のコンストラクタを使用します。

  • 多重集合を問合せごとに構成するには、多重集合の引数を指定したCASTを使用して、ネストした表型にキャストします。

  • 多重集合をネスト解除するには、FROM句のTABLE演算子を使用します。

 

S272、ユーザー定義型の多重集合 

Oracleのネストした表型では、構造型の多重集合が可能です。Oracleには固有型がないため、固有型の多重集合はサポートされません。 

S274、参照型の多重集合 

ネストした表型は、参照型の列を1つ以上持つことができます。 

S275、拡張多重集合のサポート 

Oracleは、ネストした表で使用するこの機能のうち、次の要素をサポートします。この場合、規格で多重集合に使用するのと同じ構文を使用します。

  • MULTISET UNIONMULTISET INTERSECTIONおよびMULTISET EXCEPT演算子

  • SUBMULTISET述語

  • =および<>述語

Oracleは、FUSIONまたはINTERSECTION集計をサポートしません。 

S281、ネストしたコレクション型 

Oracleでは、コレクション型のネストが可能です(VARRAYおよびネストした表)。 

T042、拡張LOBのサポート 

Oracleは、この機能の次の要素を完全にサポートします。

  • CLOB引数のTRIMファンクション

Oracleは、この機能のうち、次の要素と同等の機能を提供します。

  • BLOBおよびCLOBサブストリング(SUBSTRを使用してサポート)

  • SIMILAR述語(REGEXPR_LIKEを使用し、Perlに似た構文とのパターン一致を実行してサポート)

この機能の次の要素はサポートされません。

  • BLOBまたはCLOBオペランドの付いた比較述語

  • BLOBまたはCLOBオペランドの付いたCAST

  • OVERLAYSUBSTRおよび文字列連結を使用してエミュレート可能)

  • BLOBまたはCLOBオペランドの付いたLIKE述語

 

T051、行型 

Oracleのオブジェクト型は、規格の行型のかわりに使用できます。 

T061、UCSのサポート 

Oracleは、この機能のうち、次の要素と同等の機能を提供します。

  • Oracleは、文字データ型の宣言では、CHARACTERSOCTETSのかわりに、それぞれCHARBYTEのキーワードをサポートします。

  • OracleのCOMPOSEファンクションは、規格のNORMALIZEファンクションと同等です。

Oracleは、IS NORMALIZED述語をサポートしません。 

T071、BIGINTデータ型 

多くの実装では、BIGINTは、19桁(10進)の大部分をサポートする64ビットの2進整数型を参照します。OracleのNUMBER型は、39桁(10進)をサポートします。 

T131、再帰的問合せ 

OracleのSTART WITHおよびCONNECT BY句を使用すると、多くの再帰的問合せを実行できます。 

T132、副問合せでの再帰的問合せ 

OracleのSTART WITHおよびCONNECT BY句を使用すると、多くの再帰的問合せを実行できます。 

T141、SIMILAR述語 

Oracleは、Perlに似た構文とのパターン一致のためのREGEXP_LIKEを提供します。 

T172、表定義のAS副問合せ句 

OracleのCREATE TABLEAS副問合せ機能は、規格とほとんど同じ機能を持ちますが、構文の一部が異なります。 

T175、生成された列 

生成された列は、他の列の式で計算された表の列です。Oracleは生成された列をサポートしませんが、ファンクション索引を使用すると、式の結果に索引を作成できます。 

T176、シーケンス・ジェネレータのサポート 

Oracleのシーケンスは規格のシーケンスと同じ機能を持ちますが、構文は異なります。 

T322、SQL起動ファンクションおよびプロシージャのオーバーロード 

Oracleは、ファンクションおよびプロシージャのオーバーロードをサポートします。ただし、特定のデータ型の組合せを処理するルールは、規格と異なります。たとえば、規格では、引数の数値型のみが異なる同一名の2つのファンクションの共存が許可されますが、Oracleでは許可されません。 

T323、外部ルーチンの明示的なセキュリティ 

外部ファンクション、プロシージャまたはパッケージの作成時に使用されるOracleの構文AUTHID { CURRENT USER | DEFINER }は、規格のEXTERNAL SECURITY { DEFINER | INVOKER }と同等です。 

T324、外部ルーチンの明示的なセキュリティ 

PL/SQLファンクション、プロシージャまたはパッケージの作成時に使用されるOracleの構文AUTHID { CURRENT USER | DEFINER }は、規格のSQL SECURITY { DEFINER | INVOKER }と同等です。 

T325、修飾されたSQLパラメータ参照 

PL/SQLは、ルーチン名を使用したパラメータ名の修飾をサポートします。 

T326、表ファンクション 

Oracleは、この機能のうち、次の要素と同等の機能を提供します。

  • <問合せ別の多重集合値コンストラクタ>は、CASTMULTISET(<問合せ式>)AS <ネストした表型>)を使用してサポートされます。

  • <表ファンクションの導出表>は、VARRAYまたはネストした表を引数として指定したFROM句のTABLE演算子を使用してサポートされます。

  • <コレクション値の式>は、VARRAYまたはネストした表になるOracleの式と同等です。

  • <戻り値の表型>は、ネストした表を戻すPL/SQLファンクションと同等です。

 

T433、複数引数ファンクションGROUPING 

OracleのGROUP_IDファンクションを使用すると、グループ化した問合せによりグループを適切に区別できます。このファンクションは、規格の複数引数のGROUPINGファンクションの場合と同じ用途で使用できます。 

T471、結果セットの戻り値 

PL/SQL REFカーソルは、規格の結果セット・カーソルのすべての機能を提供します。 

T491、LATERAL導出表 

OracleのFROM句のTABLE演算子は、規格のLATERAL演算子と同等です。 

T571、配列を戻す外部SQL起動ファンクション 

VARRAYを戻すOracleの表ファンクションは、外部のプログラミング言語で定義できます。SQLでこのようなファクションを宣言する場合は、CREATE FUNCTIONコマンドをPIPELINED USING句とともに使用します。 

T571、多重集合を戻す外部SQL起動ファンクション 

ネストした表を戻すOracleの表ファンクションは、外部のプログラミング言語で定義できます。SQLでこのようなファクションを宣言する場合は、CREATE FUNCTIONコマンドをPIPELINED USING句とともに使用します。 

T581、正規表現のサブストリング・ファンクション 

Oracleでは、正規表現の一致を使用してサブストリング操作を実行するREGEXP_SUBSTRファンクションを提供します。 

T613、サンプリング 

Oracleでは、規格のキーワードTABLESAMPLEのかわりに、キーワードSAMPLEを使用します。Oracleでは、規格のキーワードSYSTEMのかわりに、キーワードBLOCKを使用します。Oracleでは、行のベルヌーイ・サンプリングの指定に、BLOCKキーワードを使用しません。規格では、キーワードBERNOULLIでこのサンプリングを指定します。 

T652、SQLルーチンでのSQL動的文 

PL/SQLは、動的SQLをサポートします。 

T654、外部ルーチンでのSQL動的文 

Oracleは、埋込みCでの動的SQLをサポートします。これは、外部ルーチンの作成に使用できます。 

T655、循環的な依存ルーチン 

PL/SQLは、再帰型をサポートします。 

SQL/CLI:2003に対するOracleの準拠

OracleのODBCドライバは、SQL/CLI:2003に準拠しています。

SQL/PSM:2003に対するOracleの準拠

OracleのPL/SQLは、キーワードの綴りや構成などの構文の小さな違いはありますが、SQL/PSM:2003と同等の機能を提供します。

SQL/MED:2003に対するOracleの準拠

OracleはSQL/MED:2003に準拠しません。

SQL/OLB:2003に対するOracleの準拠

Oracle SQLJは、SQL/OLB 99に準拠していますが、SQL/OLB 2003にはまだ準拠していません。

SQL/XML:2006に対するOracleの準拠

このドキュメントのリリース時点では、新版のSQL/XML(SQL/XML:2006)を想定していますが、最終形式ではまだ使用できません。この項には、素案および公認の変更提案に基づいた、最も適切と考えられる内容が反映されています。ただし、SQL/XML:2006の最終形式には基づいていません。

規格のXMLデータ型はXMLです。Oracleの同等のデータ型は、XMLTypeです。Oracleと規格の相違点がデータ型の名前の綴りのみである場合、規格の機能はOracleで完全にサポートされているとみなします。

表B-8に、XMLスキーマ組込み型からXQueryのOracle SQLデータ型へのマッピングを示します。

表B-8    XMLスキーマ組込み型からXQueryのSQLデータ型へのマッピング 
XMLスキーマ型  Oracle SQL型 

string 

VARCHAR2(4000) 

decimal 

NUMBER 

float 

BINARY_FLOAT 

double 

BINARY_DOUBLE 

DateTime 

TIMESTAMP WITH TIME ZONE 

time 

TIMESTAMP WITH TIME ZONE 

date 

TIMESTAMP WITH TIME ZONE 

gDay 

TIMESTAMP WITH TIME ZONE 

gMonth 

TIMESTAMP WITH TIME ZONE 

gYear 

TIMESTAMP WITH TIME ZONE 

gYearMonth 

TIMESTAMP WITH TIME ZONE 

gMonthDay 

TIMESTAMP WITH TIME ZONE 

dayTimeDuration 

INTERVAL DAY TO SECOND 

yearMonthDuration 

INTERVAL YEAR TO MONTH 

normalizedString 

VARCHAR2(4000) 

untypedAtomic 

VARCHAR2(4000) 

integer 

NUMBER 

nonPositiveInteger 

NUMBER 

negativeInteger 

NUMBER 

long 

NUMBER 

int 

NUMBER 

short 

NUMBER 

byte 

NUMBER 

nonNegativeInteger 

NUMBER 

unsignedLong 

NUMBER 

unsignedInt 

NUMBER 

unsignedShort 

NUMBER 

unsignedByte 

NUMBER 

positiveInteger 

NUMBER 

表B-9に、Oracleが完全にサポートする規格のXML機能を示します。

表B-9    完全にサポートするSQL/XML:2005の機能 
機能識別番号  機能 

X010 

XML型 

X016 

永続XML値 

X020 

XMLの連結 

X031 

XMLElement 

X032 

XMLForest 

X034 

XMLAgg 

X035 

XMLAggのORDER BYオプション 

X036 

XMLComment 

X036 

XMLPi 

X041 

表の基本マッピング(NULLなし) 

X042 

表の基本マッピング(NULLをNILとしてマッピング) 

X043 

表の基本マッピング(表をフォレストとしてマッピング) 

X044 

表の基本マッピング(表を要素としてマッピング) 

X045 

表の基本マッピング(ターゲット・ネームスペースを含む) 

X046 

表の基本マッピング(データのマッピング) 

X047 

表の基本マッピング(メタデータのマッピング) 

X049 

表の基本マッピング(16進エンコーディング) 

X060 

XMLParse(文字列の入力およびCONTENTオプション) 

X061 

XMLParse(文字列の入力およびDOCUMENTオプション) 

X070 

XMLSerialize(文字列のシリアライズおよびCONTENTオプション) 

X071 

XMLSerialize(文字列のシリアライズおよびDOCUMENTオプション) 

X072 

XMLSerialize(文字列のシリアライズ) 

X086 

XMLTableでのXMLネームスペースの宣言 

X120 

SQLルーチンでのXMLパラメータ 

X121 

外部ルーチンでのXMLパラメータ 

X201 

XMLQuery(RETURNING CONTENT) 

X203 

XMLQuery(コンテキスト項目の受渡し) 

X204 

XMLQuery(XQuery変数の初期化) 

X251 

XMLDOCUMENTUNTYPED))型の永続XML値 

X252 

XMLDOCUMENTANY))型の永続値 

X256 

XMLDOCUMENTXMLSCHEMA))型の永続値 

X302 

順序性列付きのXMLTable 

X303 

XMLTable(列のデフォルト・オプション) 

X304 

XMLTable(コンテキスト項目の受渡し) 

X305 

XMLTable(XQuery変数の初期化) 

表B-9の注意事項: 機能X041〜X047(表の基本マッピング): Oracleの表のマッピングは、Javaインタフェースおよびパッケージを介して実行できます。Oracleの表のマッピングは、表のみでなく問合せもマップするために汎用化されています。表のみをマップするには、SELECT * FROM table_nameを指定します。

表B-10に、部分的にサポートするSQL/XML:2005の機能を示します。

表B-10    部分的にサポートするSQL/XML:2005の機能 
機能識別子、機能  部分的なサポート 

X040、表の基本マッピング 

Oracleは、この機能の次の要素をサポートします。

  • X041、表の基本マッピング(NULLなし)

  • X042、表の基本マッピング(NULLをNILとしてマッピング)

  • X043、表の基本マッピング(表をフォレストとしてマッピング)

  • X044、表の基本マッピング(表を要素としてマッピング)

  • X045、表の基本マッピング(ターゲット・ネームスペースを含む)

  • X046、表の基本マッピング(データのマッピング)

  • X047、表の基本マッピング(メタデータのマッピング)

  • X049、表の基本マッピング(16進エンコーディング)

Oracleは、この機能の次の要素をサポートしません。

  • X048、表の基本マッピング(BASE64エンコーディング)

 

X060、XMLParse(文字列の入力およびCONTENTオプション) 

Oracleは、{PRESERVE | STRIP} WHITESPACE構文をサポートしません。動作は常にSTRIP WHITESPACEになります。 

X200、XMLQuery 

Oracleは、この機能の次の要素を完全にサポートします。

  • X201、XMLQuery(RETURNING CONTENT

  • X203、XMLQuery(コンテキスト項目の受渡し)

  • X204、XMLQuery(XQuery変数の初期化)

Oracleは、この機能の次の要素をサポートしません。

  • X202、XMLQuery(RETURNING SEQUENCE

  • { NULL | EMPTY } ON EMPTY構文

  • PASSING句の必須のBY {REF | VALUE}。(Oracleは値セマンティクスのみをサポートします。)

 

X300、XMLTable 

Oracleは、列パス式の逆軸をサポートしません。この制限事項を除き、Oracleは、この機能の次の要素を完全にサポートします。

  • X086、XMLTableでのXMLネームスペースの宣言

  • X302、順序性列付きのXMLTable

  • X303、XMLTable(列のデフォルト・オプション)

  • X304、XMLTable(コンテキスト項目の受渡し)

  • X305、XMLTable(XQuery変数の初期化)

Oracleは、この機能の次の要素をサポートしません。

  • X301、XMLTable(導出列リスト・オプション)

  • PASSING句の必須のBY {REF | VALUE}。Oracleは、現時点でBY VALUEセマンティクスのみをサポートします。

 

表B-11に、Oracleが同等の機能を介してサポートするSQL/XML:2005の機能を示します。

表B-11    SQL/XML:2005機能と同等の機能 
機能識別子、機能  同等の機能 

X011、XML型の配列 

Oracleでは、配列に名前を付ける必要があります。規格では匿名です。 

X012、XML型の多重集合 

OracleでXML型の多重集合に相当するものは、XML型の単一列を持つネストした表です。 

X013、固有のXML型 

固有型は、1つの属性のみを持つオブジェクト型を使用してエミュレートできます。 

X014、XML型の属性 

Oracleでは、オブジェクト型の属性はXMLType型にできますが、この構文はオブジェクト型の作成には標準ではありません。 

X025、XMLCast 

Oracleは、この機能のうち、次の要素と同等の機能を提供します。

  • XMLからスカラー型にキャストするには、EXTRACTVALUEを使用します。XML値が型指定される場合、結果はXML型に最も類似します。型指定されない場合、結果の型はVARCHAR(4000)になります。他のスカラー型に変換するには、CASTを使用します。

  • スカラー型からXMLにキャストするには、スカラー値をXMLQueryに渡し、ドキュメント・コンストラクタに挿入します。

OracleはXML型を1つしか持たないため、XMLからXMLにキャストする必要はありません。 

X076、XMLSerializeのVERSIONオプション 

シリアライズの前にXMLバージョンを設定するには、XMLRootを使用します。 

X080、XML公開時のネームスペース 

XMLElementのOracle実装では、XMLAttributesを使用してネームスペースが定義されます(XMLNamespacesは実装されません)。ただし、XMLAttributesは、XMLForestではサポートされません。 

X090、XML文書の述語 

Oracleでは、ISFRAGMENTメソッドを使用してXML値が文書かどうかをテストできます。 

X096、XMLExists 

XPathを評価するには、EXISTSNODEを使用します。ノードが検出された場合は1を戻し、検出されない場合は0を戻します。XPath式以外のXQuery式はサポートされません。また、Oracleは、XPath 1.0式をサポートします(XQueryのサブセットであるXPath 2.0はサポートされません)。 

X121、外部ルーチンでのXMLパラメータ 

Oracleは、規格以外のインタフェースを使用して外部ルーチンに渡されるXML値をサポートします。 

X141、IS VALID述語(データ駆動形式) 

XMLISVALIDメソッドはIS VALID述語と同等で、データ駆動形式をサポートします。 

X142、IS VALID述語(ACCORDING TO句) 

XMLISVALIDメソッドはIS VALID述語と同等で、ACCORDING TO句に相当するものを含みます。 

X143、IS VALID述語(ELEMENT句) 

XMLISVALIDメソッドはIS VALID述語と同等で、ELEMENT句に相当するものを含みます。 

X144、IS VALID述語(スキーマの場所) 

XMLISVALIDメソッドはIS VALID述語と同等で、登録済XMLスキーマのスキーマの場所の指定をサポートします。 

X145、IS VALID述語(CHECK制約の外部) 

XMLISVALIDメソッドはIS VALID述語と同等で、CHECK制約の外部で使用できます。 

X151、DOCUMENTオプション付きのIS VALID述語 

XMLISVALIDメソッドはIS VALID述語と同等で、DOCUMENT句と同等の検証を実行します(XMLISVALIDは「内容」の検証をサポートしません)。 

X156、IS VALID述語(ELEMENT句の付いたオプションのNAMESPACE) 

XMLISVALIDメソッドはIS VALID述語と同等で、ネームスペースの要素の検証に使用できます。 

X157、IS VALID述語(ELEMENT句の付いたNO NAMESPACE) 

XMLISVALIDメソッドはIS VALID述語と同等で、名前のないネームスペースの要素の検証に使用できます。 

X160、登録済XMLスキーマの基本情報スキーマ 

Oracleの静的データ・ディクショナリ・ビューALL_XML_SCHEMASは、現行のユーザーがアクセスできる登録済のXMLスキーマのリストを提供します。ALL_XML_SCHEMAS.SCHEMA_URL列は、規格のXML_SCHEMAS.XML_SCHEMA_LOCATION列に対応します。登録済XMLスキーマのターゲット・ネームスペースは、ALL_XML_SCHEMAS.SCHEMAを調べることによって確認できます。Oracleは、規格のXML_SCHEMASの他の列に相当する列を持ちません。 

X161、登録済XMLスキーマの拡張情報スキーマ 

Oracleは、規格のXML_SCHEMA_NAMESPACESおよびXML_SCHEMA_ELEMENTSに対応する静的データ・ディクショナリ・ビューを持ちません。ただし、登録済XMLスキーマに関するすべての情報は、ALL_XML_SCHEMAS.SCHEMA列にある実際のXMLスキーマを調べることによって確認できます。これを調べると、登録済XMLスキーマが非決定的であるかどうかも確認できます。また、非決定的なネームスペースと要素も確認できます。 

X191、XMLDOCUMENT

(XMLSCHEMA))型 

Oracleは、この構文をサポートしません。ただし、表の列は登録済XMLスキーマで制約できます。この場合、列のすべての値はXMLDOCUMENTXMLSCHEMA))型になります。 

X221、XML受渡しメカニズムBY VALUE 

Oracleは値セマンティクスのみをサポートしますが、明示的なBY VALUE句はサポートしません。 

X232、XMLCONTENTANY))型 

Oracleは、この構文を型の修飾子としてサポートしませんが、OracleのXMLTypeは、一時値でこのデータ型をサポートします。永続値は、XMLDOCUMENTANY))型になります。この型は、XMLCONTENTANY))のサブセットです。 

X241、XML文書作成時のRETURNING CONTENT 

Oracleは、この構文をサポートしません。Oracleでは、文書を作成するファンクション(XMLAggXMLCommentXMLConcatXMLElementXMLForestおよびXMLPi)の動作は、常にRETURNING CONTENTになります。 

X260、XML型(ELEMENT句) 

Oracleは、この構文をサポートしません。ただし、表の列は登録済XMLスキーマの最上位の要素で制約できます。 

X262、XML型(ELEMENT句の付いたオプションのNAMESPACE) 

Oracleは、この構文をサポートしません。ただし、表の列は、登録済XMLスキーマのターゲット・ネームスペース以外のネームスペースにある最上位の要素で制約できます。 

X263、XML型(ELEMENT句の付いたNO NAMESPACE) 

Oracleは、この構文をサポートしません。ただし、表の列は登録済XMLスキーマの名前のないネームスペースにある最上位の要素で制約できます。 

X264、XML型(スキーマの場所) 

Oracleは、この構文をサポートしません。ただし、表の列はスキーマの場所で識別される登録済XMLスキーマで制約できます。 

X271、XMLValidate(データ駆動形式) 

SCHEMAVALIDATEメソッドはXMLValidateと同等で、データ駆動形式をサポートします。 

X272、XMLValidate(ACCORDING TO句) 

SCHEMAVALIDATEメソッドはXMLValidateと同等で、特定の登録済XMLスキーマの指定に使用できます。 

X273、XMLValidate(ELEMENT句) 

SCHEMAVALIDATEメソッドはXMLValidateと同等で、特定の登録済XMLスキーマの特定要素を指定するために使用できます。 

X274、XMLValidate(スキーマの場所) 

SCHEMAVALIDATEメソッドはXMLValidateと同等で、スキーマの場所を示すURLで特定の登録済XMLスキーマを指定するために使用できます。 

X281、DOCUMENTオプションの付いたXMLValidate 

SCHEMAVALIDATEメソッドはXMLValidateと同等です。SCHEMAVALIDATEはXML文書の検証のみを実行します(内容の検証は実行しません)。 

X285、XMLValidate(ELEMENT句の付いたオプションのNAMESPACE) 

SCHEMAVALIDATEメソッドはXMLValidateと同等で、特定の登録済XMLスキーマのターゲット・ネームスペース以外のネームスペースにある特定要素を指定するために使用できます。 

X286、XMLValidate(ELEMENT句の付いたNO NAMESPACE) 

SCHEMAVALIDATEメソッドはXMLValidateと同等で、特定の登録済XMLスキーマの名前のないネームスペースにある特定要素を指定するために使用できます。 

Xnnn *、XMLテキスト・ノード・コンストラクタ 

OracleのXMLCDataファンクションは、テキスト・ノードの作成に使用できます。 

*正確な機能識別番号は、このドキュメントの公開時点では不明です。

表B-12に、OracleがサポートしないSQL/XML:2003の機能を示します。

表B-12    サポートしないSQL/XML:2003機能 
機能識別番号  機能 

X015 

XML型のフィールド 

X030 

XMLDocument 

X048 

表の基本マッピング(BASE64エンコーディング) 

X050 

表の拡張マッピング 

X051 

表の拡張マッピング(NULLなし) 

X052 

表の拡張マッピング(NULLをNILとしてマッピング) 

X053 

表の拡張マッピング(表をフォレストとしてマッピング) 

X054 

表の拡張マッピング(表を要素としてマッピング) 

X055 

表の拡張マッピング(ターゲット・ネームスペースを含む) 

X056 

表の拡張マッピング(データのマッピング) 

X057 

表の拡張マッピング(メタデータのマッピング) 

X058 

表の拡張マッピング(バイナリ文字列のBASE64エンコーディング) 

X059 

表の拡張マッピング(バイナリ文字列の16進エンコーディング) 

X065 

XMLParse(BLOB入力およびCONTENTオプション) 

X066 

XMLParse(BLOB入力およびDOCUMENTオプション) 

X073 

XMLSerialize(BLOBシリアライズおよびCONTENTオプション) 

X074 

XMLSerialize(BLOBシリアライズおよびDOCUMENTオプション) 

X075 

XMLSerialize(BLOBシリアライズ) 

X076 

XMLSerialize(VERSION) 

X077 

XMLSerialize(明示的なENCODINGオプション) 

X078 

XMLSerialize(明示的なXML宣言) 

X081 

問合せレベルのネームスペースの宣言 

X082 

DMLでのXMLネームスペースの宣言 

X083 

DDLでのXMLネームスペースの宣言 

X084 

複合文でのXMLネームスペースの宣言 

X085 

事前定義のネームスペース接頭辞 

X091 

XMLコンテンツの述語 

X100 

XMLに対するホスト言語のサポート(CONTENTオプション) 

X101 

XMLに対するホスト言語のサポート(DOCUMENTオプション) 

X110 

XMLに対するホスト言語のサポート(VARCHARマッピング) 

X111 

XMLに対するホスト言語のサポート(CLOBマッピング) 

X131 

問合せレベルのXMLBINARY句 

X132 

DMLのXMLBINARY句 

X133 

DDLのXMLBINARY句 

X134 

複合文のXMLBINARY句 

X135 

副問合せのXMLBINARY句 

X152 

CONTENTオプション付きのIS VALID述語 

X153 

SEQUENCEオプション付きのIS VALID述語 

X155 

IS VALID述語(ELEMENT句のないNAMESPACE) 

X170 

XML NULL処理のオプション 

X171 

NIL ON NO CONTENTオプション 

X181 

XMLDOCUMENTUNTYPED))型 

X182 

XMLDOCUMENTANY))型 

X190 

XMLSEQUENCE)型 

X192 

XMLCONTENTXMLSCHEMA))型 

X202 

XMLQuery(RETURNING SEQUENCE) 

X211 

XML 1.1のサポート 

X222 

XML受渡しメカニズムBY REF 

X231 

XMLCONTENTUNTYPED))型 

X242 

XML文書作成時のRETURNING SEQUENCE 

X253 

XMLCONTENTUNTYPED))型の永続XML値 

X254 

XMLCONTENTANY))型の永続XML値 

X255 

XMLSEQUENCE)型の永続値 

X257 

XMLCONTENTXMLSCHEMA))型の永続値 

X261 

XML型(ELEMENT句のないNAMESPACE) 

X282 

XMLValidate(CONTENTオプション付き) 

X283 

XMLValidate(SEQUENCEオプション付き) 

X284 

XMLValidate(ELEMENT句のないNAMESPACE) 

X290 

名前および識別子のマッピング 

X301 

XMLTable(導出列リスト・オプション) 

Xnnn * 

XMLに対するホスト言語のサポート(BLOBマッピング) 

Xnnn * 

XMLに対するホスト言語のサポート(STRIP WHITESPACEオプション) 

Xnnn * 

XMLに対するホスト言語のサポート(PRESERVE WHITESPACEオプション) 

*正確な機能識別番号は、このドキュメントの公開時点では不明です。

FIPS 127-2に対するOracleの準拠

Oracleは、最新のFIPS(Federal Information Processing Standard)であるFIPS PUB 127-2に完全に準拠しています。現在、この規格は、公開されていません。ただし、FIPS 127-2で定義されたデータベース要素のサイズに関する情報に依存するアプリケーションを使用するユーザーのために、準拠性についての詳細を表B-13に示します。

表B-13    データベース要素のサイズ設定 
データベース要素  FIPS  Oracle Database 

識別子の長さ(バイト単位) 

18 

30 

CHARACTERデータ型の長さ(バイト単位) 

240 

2000 

NUMERICデータ型の10進精度 

15 

38 

DECIMALデータ型の10進精度 

15 

38 

INTEGERデータ型の10進精度 

38 

SMALLINTデータ型の10進精度 

38 

FLOATデータ型の2進精度 

20 

126 

REALデータ型の2進精度 

20 

63 

DOUBLE PRECISION データ型の2進精度 

30 

126 

表の中の列 

100 

1000 

INSERT文の中の値 

100 

1000 

UPDATE文内のSET句(注意1) 

20 

1000 

行の長さ(注意2、注意3) 

2,000 

2,000,000  

一意制約の中の列 

32 

一意制約の長さ(注意2) 

120 

(注意4) 

外部キー列リストの長さ(注意2) 

120 

(注意4) 

GROUP BY句の中の列 

255(注意5) 

GROUP BY列のリストの長さ 

120 

(注意5) 

ORDER BY句の中のソート指定 

255(注意5) 

ORDER BY列のリストの長さ 

120 

(注意5) 

参照整合性制約内の列 

32 

SQL文で参照される表 

15 

無制限 

同時にオープンできるカーソル 

10 

(注意6) 

SELECT構文のリストの項目 

100 

1000 

注意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を超えます。

標準SQLに対するOracle拡張機能

Oracleでは、標準SQL以外でも様々な機能をサポートしています。Oracleアプリケーションでは、Core SQL:2003の使用と同様に、これらの拡張機能を使用できます。

他のSQL処理系へのアプリケーションの移植性を考慮する場合、OracleのFIPSフラガーを使用して、埋込みSQLプログラムでのEntry SQL92にOracleの拡張機能を位置付けてください。FIPSフラガーは、OracleプリコンパイラとSQL*Moduleコンパイラの一部です。

参照

FIPSフラガーの使用方法の詳細は、『Pro*COBOLプログラマーズ・ガイド』および『Pro*C/C++プログラマーズ・ガイド』を参照してください。 

以前の規格に対するOracleの準拠

今回のリリースの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のコピーについては、次の宛先に申し込んでください。

International Organization for Standardization
1 Rue de Varembé
Case postale 56
CH-1211, Geneva 20, Switzerland
電話番号: +41.22.749.0111
FAX番号: +41.22.733.3430
URL: http://www.iso.ch/

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データ型(NCHARNVARCHAR2およびNCLOB)に対して、Unicodeデータを、各国語キャラクタ・セットで、UTF-16またはUTF-8エンコード形式によって格納できます。

参照:

Oracleのキャラクタ・セットのサポートの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 


戻る 次へ
Oracle
Copyright © 1996, 2008, Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引