224 DBMS_XMLSCHEMA_ANNOTATE
DBMS_XMLSCHEMA_ANNOTATE
パッケージは、主に事前登録スキーマ注釈を使用して、構造化記憶域モデルを管理および構成するためのインタフェースを提供します。
この章のトピックは、次のとおりです:
224.1 DBMS_XMLSCHEMA_ANNOTATEの概要
DBMS_XMLSCHEMA_ANNOTATE
パッケージには、主に事前登録スキーマ注釈を使用して、構造化記憶域モデルを管理および構成するためのプロシージャが含まれています。
スキーマ注釈は、XMLデータの格納方法に影響します。たとえば、デフォルトの表の注釈では、データベースでシステム名を生成できるようにするのではなく、ユーザー指定の名前がXML要素に割り当てられます。したがって、問合せ計画が読み取りやすくなり、表に対する制約も容易に作成できます。
224.2 DBMS_XMLSCHEMA_ANNOTATEのセキュリティ・モデル
DBMS_XMLSCHEMA_ANNOTATE
パッケージは、XDB
が所有しているため、SYS
またはXDB
によって作成される必要があります。EXECUTE
権限は、PUBLIC
に付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
224.3 DBMS_XMLSCHEMA_ANNOTATEサブプログラムの要約
この表は、DBMS_XMLSCHEMA_ANNOTATE
パッケージのサブプログラムについて説明しています。
表224-1 DBMS_XMLSCHEMA_ANNOTATEパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
XDB注釈に必要なXDB名前空間を追加します。 |
|
空の値を持つデフォルトの表属性を最上位レベルの要素に追加することによって、その要素に表が作成されないようにします。 |
|
DOMの忠実度属性を |
|
空のデフォルトの表名の注釈を削除することによって、最上位レベルの表をすべて( |
|
DOMの忠実度属性を |
|
注釈付きXMLスキーマと元のXMLスキーマとの差分ドキュメントを作成します。 |
|
XMLTABLEビュー定義をxmltype列または表に取り込み、 |
|
XMLスキーマでノードにマップされた注釈がない場合に、ユーザーが警告を発したり、警告を非表示にできるようにします。 |
|
指定された名前を持つ複合タイプの任意( |
|
要素に指定されたデフォルトの表属性を削除します。このプロシージャをコールした後で、表名が生成されます。 |
|
DOMのメンテナンスに使用したすべての注釈を、指定したスキーマから削除します。 |
|
表外に格納されないようにするために、既存のすべての |
|
SQLコレクション・タイプを削除します。 |
|
グローバル要素から |
|
SQLタイプを削除します。 |
|
指定されたスキーマ・タイプのSQLタイプのマッピングを削除します。 |
|
|
|
|
|
指定された名前を持つ複合タイプの任意( |
|
指定されたグローバル要素の表名を設定します。 |
|
|
|
|
|
コレクションのSQLタイプの名前を割り当てます。 |
|
XMLスキーマで定義された要素に対応する名前を、SQL属性に割り当てます。 |
|
グローバル・オブジェクトにSQLタイプを割り当てます。 |
|
スキーマ・タイプとSQLタイプのマッピングを定義します。 |
|
デフォルトの |
|
|
224.3.1 ADDXDBNAMESPACEプロシージャ
このプロシージャは、XDB注釈に必要なXDB名前空間を追加します。
構文
DBMS_XMLSCHEMA_ANNOTATE.ADDXDBNAMESPACE ( xmlschema IN OUT XMLTYPE);
パラメータ
表224-2 ADDXDBNAMESPACEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
XMLスキーマを |
使用上のノート
このプロシージャは、スキーマの注釈を追加する別のプロシージャによって暗黙的にコールされます。他の注釈を付けずにXDB名前空間を追加する理由がないため、このプロシージャは通常、ユーザーが直接コールするのではなく、別の注釈プロシージャによってコールされます。
224.3.2 DISABLEDEFAULTTABLECREATIONプロシージャ
このプロシージャは、空の値を持つデフォルトの表属性を最上位レベルの要素に追加することによって、その要素に表が作成されないようにします。最初のオーバーロードは指定された最上位レベル要素に適用され、2回目のオーバーロードはすべての最上位レベル要素に適用されます。このプロシージャは常に上書きします。これは、最上位レベル要素または要素にスキーマ注釈xdb:defaultTable=""
を使用するのと同じです。
構文
DBMS_XMLSCHEMA_ANNOTATE.DISABLEDEFAULTTABLECREATION ( xmlschema IN OUT XMLType, globalElementName IN VARCHAR2);
DBMS_XMLSCHEMA_ANNOTATE.DISABLEDEFAULTTABLECREATION ( xmlschema IN OUT XMLType);
パラメータ
表224-3 DISABLEDEFAULTTABLECREATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
スキーマ内のグローバル要素の名前 |
例
purchaseOrder
要素には、xdb:defaultTable=""
と同様の注釈が付けられます。
DECLARE xml_schema XMLTYPE; BEGIN SELECT out INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.DISABLEDEFAULTTABLECREATION(xml_schema, 'purchaseOrder'); UPDATE annotation_tab SET out = xml_schema; END; /
224.3.3 DISABLEMAINTAINDOMプロシージャ
このプロシージャは、DOMの忠実度属性をFALSE
に設定します。
2つのオーバーロードがあります。DOMの忠実度属性は、最初はすべての複合タイプに対してFALSE
に設定され、2回目は指定された複合タイプに対してFALSE
に設定されます。これは、すべての、または指定された複合タイプに対してそれぞれxdb:maintainDOM="false"
を追加するのと同じです。
構文
DBMS_XMLSCHEMA_ANNOTATE.DISABLEMAINTAINDOM ( xmlschema IN OUT XMLType, overwrite IN BOOLEAN default TRUE);
DBMS_XMLSCHEMA_ANNOTATE.DISABLEMAINTAINDOM ( xmlschema IN OUT XMLType, complexTypeName IN VARCHAR2, overwrite IN BOOLEAN default TRUE);
パラメータ
表224-4 DISABLEMAINTAINDOMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
複合タイプの名前 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
224.3.4 ENABLEDEFAULTTABLECREATIONプロシージャ
このプロシージャは、空のデフォルトの表名の注釈を削除することによって、最上位レベルの表をすべて作成できるようにします。
構文
DBMS_XMLSCHEMA_ANNOTATE.ENABLEDEFAULTTABLECREATION ( xmlschema IN OUT XMLTYPE); DBMS_XMLSCHEMA_ANNOTATE.ENABLEDEFAULTTABLECREATION ( xmlschema IN OUT XMLTYPE, globalElementName IN VARCHAR2););
パラメータ
表224-5 ENABLEDEFAULTTABLECREATIONプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
スキーマ内のグローバル要素の名前 |
使用上のノート
このプロシージャは、デフォルトの表名を持つ要素には影響しません。
224.3.5 ENABLEMAINTAINDOMプロシージャ
このオーバーロードしたプロシージャは、DOMの忠実度属性をTRUE
に設定します。
2つのオーバーロードがあります。DOMの忠実度属性は、最初はすべての複合タイプに対してTRUE
に設定され、2回目は指定された複合タイプに対してTRUEに設定されます。
構文
DBMS_XMLSCHEMA_ANNOTATE.ENABLEMAINTAINDOM ( xmlschema IN OUT XMLType, overwrite IN BOOLEAN default TRUE);
DBMS_XMLSCHEMA_ANNOTATE.ENABLEMAINTAINDOM ( xmlschema IN OUT XMLType, complexTypeName IN VARCHAR2, overwrite IN BOOLEAN default TRUE);
パラメータ
表224-6 ENABLEMAINTAINDOMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
複合タイプの名前 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
224.3.6 GETSCHEMAANNOTATIONSファンクション
このファンクションは、注釈付きXMLスキーマと元のXMLスキーマとの差分ドキュメントを作成します。
構文
DBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONS ( xmlschema IN xmlType) RETURN XMLType;
パラメータ
表224-7 GETSCHEMAANNOTATIONSファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
元のXMLスキーマ |
戻り値
このファンクションは、ドキュメントannotations.xml
をXMLType
として戻します。
使用上のノート
このファンクションは、すべての注釈を1つのドキュメントに保存してannotations
という名前を付け、それを戻します。このドキュメントにより、DBMS_XMLSCHEMA_ANNOTATE.
GETSCHEMAANNOTATIONS
を使用して、注釈のないスキーマにすべての注釈を適用することができます。
DBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONS
は、Oracle Databaseリリース10.2では使用できません(Oracle Databaseリリース11.xのみ)。
例
DBMS_XMLSCHEMA_ANNOTATE.
GETSCHEMAANNOTATIONS
の例は、「SETSCHEMAANNOTATATIONSプロシージャ」の例を参照してください。
224.3.7 GETSIDXDEFFROMVIEWファンクション
このファンクションは、XMLTABLEビュー定義をxmltype列または表に取り込み、CLOB
を戻します。これをパラメータとして使用し、XMLTABLEビューをリレーショナル表としてバックアップする構造化xmlindexを作成することができます。
構文
DBMS_XMLSCHEMA_ANNOTATE.GETSIDXDEFFROMVIEW ( viewName IN xmlType) RETURN CLOB;
パラメータ
表224-8 GETSIDXDEFFROMVIEWファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
元のXMLスキーマ |
戻り値
このファンクションはCLOB
を戻します。これをパラメータとして使用して、XMLTABLE
ビューをリレーショナル表としてバックアップする構造化xmlindexを作成することができます。
224.3.8 PRINTWARNINGSプロシージャ
このプロシージャは、XMLスキーマでノードにマップされた注釈がない場合に、ユーザーが警告を発したり、警告を非表示にできるようにします。
構文
DBMS_XMLSCHEMA_ANNOTATE.PRINTWARNINGS ( value IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-9 PRINTWARNINGSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
使用上のノート
注釈がXMLスキーマ内の複数のノードにマップしている場合は、エラーANNOTATION MAPS TO MULTIPLE ELEMENTS
が発生します。この場合、注釈は実行されません。ユーザーは、XMLスキーマ内で一意のノードが参照されるようにプロシージャ・コールのパラメータを修正する必要があります。
224.3.9 REMOVEANYSTORAGEプロシージャ
このプロシージャは、指定された名前を持つ複合タイプの任意(ANY
)の子から、SQLタイプの設定を削除します。
構文
DBMS_XMLSCHEMA_ANNOTATE.REMOVEANYSTORAGE ( xmlschema IN OUT XMLType, complexTypeName IN VARCHAR2);
パラメータ
表224-10 REMOVEANYSTORAGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈対象のXML Schema。 |
|
複合タイプの名前 |
使用上のノート
このプロシージャは、SETANYSTORAGEプロシージャとは逆の処理をします。
224.3.10 REMOVEDEFAULTTABLEプロシージャ
このプロシージャは、要素に指定されたデフォルトの表属性をすべて削除します。
このプロシージャをコールした後で、表名が生成されます。このプロシージャは常に上書きします。
構文
DBMS_XMLSCHEMA_ANNOTATE.REMOVEDEFAULTTABLE ( xmlschema IN OUT XMLTYPE, globalElementName IN VARCHAR2);
パラメータ
表224-11 REMOVEDEFAULTTABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
スキーマ内のグローバル要素の名前 |
例
注釈は、"select out from annotation_tab"
を使用していつでも検証できます。
--The purchaseOrder element will have no annotation for defaultTable. DECLARE xml_schema XMLTYPE; BEGIN SELECT out INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.REMOVEDEFAULTTABLE(xml_schema, 'purchaseOrder'); UPDATE annotation_tab SET out = xml_schema; END; /
224.3.11 REMOVEMAINTAINDOMプロシージャ
このプロシージャは、DOMのメンテナンスに使用されたすべての注釈を、指定したスキーマから削除します。
構文
DBMS_XMLSCHEMA_ANNOTATE.REMOVEMAINTAINDOM ( xmlschema IN OUT XMLType);
パラメータ
表224-12 REMOVEMAINTAINDOMプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
224.3.12 REMOVEOUTOFLINEプロシージャ
このプロシージャは、表外に格納されないようにするために、既存のすべてのSQLInline
属性を削除します。
3回のオーバーロードが行われます。
構文
指定された要素のSQLInline
属性を削除します。
DBMS_XMLSCHEMA_ANNOTATE.REMOVEOUTOFLINE ( xmlschema IN OUT XMLType, elementName IN VARCHAR2, elementType IN VARCHAR2, overwrite IN BOOLEAN default TRUE);
グローバル・オブジェクトとローカル要素名によって指定されたオブジェクトのSQLInline
属性を削除します。
DBMS_XMLSCHEMA_ANNOTATE.REMOVEOUTOFLINE ( xmlschema IN OUT XMLType, globalObject IN VARCHAR2, globalObjectName IN VARCHAR2, localElementName IN VARCHAR2);
参照されたグローバル要素のSQLInline
属性が削除されます。
DBMS_XMLSCHEMA_ANNOTATE.REMOVEOUTOFLINE ( xmlschema IN OUT XMLType, reference IN VARCHAR2);
パラメータ
表224-13 REMOVEOUTOFLINEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
要素名。 |
|
要素タイプ。 |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル・オブジェクトの名前 |
|
グローバル要素の下位のローカル要素の名前 |
|
グローバル要素の参照 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
使用上のノート
このプロシージャは、SETOUTOFLINEプロシージャとは逆の処理をします。
224.3.13 REMOVESQLCOLLTYPEプロシージャ
このプロシージャは、SQLコレクション・タイプを削除します。
最初のオーバーロードでは指定された要素に対応するSQLコレクション・タイプが削除され、2回目のオーバーロードでは複合タイプの内部にあるXML要素からそのタイプが削除されます。
構文
DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLCOLLTYPE ( xmlschema IN OUT XMLType, elementName IN VARCHAR2);
DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLCOLLTYPE ( xmlschema IN OUT XMLType, globalObject IN VARCHAR2, globalName IN VARCHAR2, localElementName IN VARCHAR2);
パラメータ
表224-14 REMOVESQLCOLLTYPEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
要素名。 |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル・オブジェクトの名前 |
|
グローバル要素の下位のローカル要素の名前 |
使用上のノート
このプロシージャは、SETSQLCOLLTYPEプロシージャとは逆の処理をします。
224.3.14 REMOVESQLNAMEプロシージャ
このプロシージャは、グローバル要素からSQLNAME
を削除します。
構文
DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLNAME ( xmlschema IN OUT XMLType, globalObject IN VARCHAR2, globalObjectName IN VARCHAR2, localObject IN VARCHAR2, localObjectName IN VARCHAR2, sqlName IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-15 REMOVESQLNAMEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル・オブジェクトの名前 |
|
グローバル・オブジェクトの下位オブジェクト |
|
ローカル・オブジェクトの名前 |
|
XMLスキーマで定義された要素に対応するSQL属性の名前 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
例
shipTo
要素には、xdb:SQLName="SHIPTO_SQLNAME"
と同様の注釈が付けられます。
DECLARE xml_schema XMLTYPE; BEGIN SELECT out INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.SETSQLNAME (xml_schema, 'element', 'purchaseOrder', 'element', 'shipTo', 'SHIPTO_SQLNAME'); UPDATE annotation_tab SET out = xml_schema; END; /
224.3.15 REMOVESQLTYPEプロシージャ
このプロシージャはSQLタイプを削除します。
最初のオーバーロードではグローバル要素からSQLタイプが削除され、2回目のオーバーロードでは複合タイプの内部にあるグローバル要素からそのタイプが削除されます。
構文
DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLTYPE ( xmlschema in out XMLType, globalElementName IN VARCHAR2);
DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLTYPE ( xmlschema IN OUT XMLTYPE, globalObject IN VARCHAR2, globalObjectName IN VARCHAR2, localObject IN VARCHAR2, localObjectName IN VARCHAR2);
パラメータ
表224-16 REMOVESQLTYPEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル要素の名前 |
|
グローバル・オブジェクトの名前 |
|
グローバル・オブジェクトの下位オブジェクト |
|
ローカル・オブジェクトの名前 |
使用上のノート
このプロシージャは、SETSQLTYPEプロシージャとは逆の処理をします。
224.3.16 REMOVESQLTYPEMAPPINGプロシージャ
このプロシージャは、指定されたスキーマ・タイプのSQLタイプのマッピングを削除します。
構文
DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLTYPEMAPPING ( xmlschema IN OUT XMLTYPE, schemaTypeName IN VARCHAR2);
パラメータ
表224-17 REMOVESQLTYPEMAPPINGプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
スキーマ・タイプの名前 |
使用上のノート
このプロシージャは、SETSQLTYPEMAPPINGプロシージャとは逆の処理をします。
224.3.17 REMOVETABLEPROPSプロシージャ
このプロシージャは、CREATE
TABLE
文から表記憶域のプロパティを削除します。
このプロシージャはオーバーロードされています。各オーバーロードには、それぞれ異なるパラメータ要件が指定どおりに割り当てられています。
構文
DBMS_XMLSCHEMA_ANNOTATE.REMOVETABLEPROPS ( xmlschema IN OUT XMLTYPE, globalElementName IN VARCHAR2);
DBMS_XMLSCHEMA_ANNOTATE.REMOVETABLEPROPS ( xmlschema IN OUT XMLTYPE, globalObject IN VARCHAR2, globalObjectName IN VARCHAR2, localElementName IN VARCHAR2);
パラメータ
表224-18 REMOVETABLEPROPSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
スキーマ内のグローバル要素の名前 |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル・オブジェクトの名前 |
|
グローバル要素の下位のローカル要素の名前 |
使用上のノート
このプロシージャは、SETTABLEPROPSプロシージャとは逆の処理をします。
224.3.18 REMOVETIMESTAMPWITHTIMEZONEプロシージャ
このプロシージャは、XMLスキーマ内のすべてのdateTime
タイプの要素からTimeStampWithTimeZone
データ・タイプの設定を削除します。
構文
DBMS_XMLSCHEMA_ANNOTATE.REMOVETIMESTAMPWITHTIMEZONE ( xmlschema IN OUT XMLTYPE); DBMS_XMLSCHEMA_ANNOTATE.REMOVETIMESTAMPWITHTIMEZONE ( xmlschema IN OUT XMLTYPE, schemaTypeName IN VARCHAR2);
パラメータ
表224-19 REMOVETIMESTAMPWITHTIMEZONEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
スキーマ・タイプの名前 |
使用上のノート
このプロシージャは、SETTIMESTAMPWITHTIMEZONEプロシージャとは逆の処理をします。
224.3.19 SETANYSTORAGEプロシージャ
このプロシージャは、指定された名前を持つ複合タイプの任意(ANY
)の子に、SQLデータ・タイプを割り当てます。
構文
DBMS_XMLSCHEMA_ANNOTATE.SETANYSTORAGE ) xmlschema IN OUT XMLType, complexTypeName IN VARCHAR2, sqlTypeName IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-20 SETANYSTORAGEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
複合タイプの名前 |
|
SQLタイプの名前 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
例
複合タイプItems
のxsd:any
child
に、xdb:SQLType="VARCHAR"
と同様の注釈が割り当てられます。
DECLARE xml_schema XMLTYPE;BEGIN SELECT out INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.setAnyStorage (xml_schema, 'Items', 'VARCHAR'); UPDATE annotation_tab SET out = xml_schema;END; /
224.3.20 SETDEFAULTTABLEプロシージャ
このプロシージャは、指定されたグローバル要素に表の名前を設定します。これは、最上位レベルの要素にスキーマ注釈xdb:defaultTable="<default_table_name>"
を使用するのと同じです。
構文
DBMS_XMLSCHEMA_ANNOTATE.SETDEFAULTTABLE ( xmlschema IN OUT XMLTYPE, globalElementName IN VARCHAR2, tableName IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-21 SETDEFAULTTABLEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
スキーマ内のグローバル要素の名前 |
|
表に割り当てられる名前 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
224.3.21 SETOUTOFLINEプロシージャ
このプロシージャは、SQLInline
属性をFALSE
に設定します。つまり、xdb:SQLInLine=FALSE
を設定します。
これにより、XDBは、XMLドキュメントの対応する要素を別のXMLType
表の行として表外に強制的に格納します。XDBは、XMLType
表の各行への参照を、メイン表によりメンテナンスされるリンク表に格納します。
このプロシージャでは、表外の表が問合せのドライバとして動作する場合に、パフォーマンスを改善できることがあります。また、要素を表内および表外に格納することによって元表の列数が削減されるため、XMLスキーマ登録時に、一部の要素に複合タイプ(多数の要素からなる)が存在する場合でも、'4096 column limit'
エラーを回避することができます。
関連項目:
Oracle XML DB開発者ガイド
3回のオーバーロードが行われます。
構文
SQLInline
属性をFALSE
に設定して、指定された要素の表外格納を強制します。
DBMS_XMLSCHEMA_ANNOTATE.SETOUTOFLINE ( xmlschema IN OUT XMLType, elementName IN VARCHAR2, elementType IN VARCHAR2, defaultTableName IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
SQLInline
属性をFALSE
に設定して、ローカル名とグローバル名によって指定された要素の表外格納を強制します。
DBMS_XMLSCHEMA_ANNOTATE.SETOUTOFLINE ( xmlschema IN OUT XMLType, globalObject IN VARCHAR2, globalObjectName IN VARCHAR2, localElementName IN VARCHAR2, defaultTableName IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
SQLInline
属性をFALSE
に設定して表外格納を強制し、特定のグローバル要素へのすべての参照でデフォルト名を設定します。
DBMS_XMLSCHEMA_ANNOTATE.SETOUTOFLINE ( xmlschema IN OUT XMLType, reference IN VARCHAR2, defaultTableName IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-22 SETOUTOFLINEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈対象のXML Schema。 |
|
要素名。 |
|
要素タイプ。 |
|
デフォルト表の名前。 |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル・オブジェクトの名前 |
|
グローバル要素の下位のローカル要素の名前。 |
|
グローバル要素の参照 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
使用上のノート
XMLスキーマ登録後のXMLインスタンス・データのロード前に、DBMS_XMLSTORAGE_MANAGE.SCOPEXMLREFERENCES()
を使用して、参照範囲を表外の表にのみ設定してください。こうすることで、その後の問合せのパフォーマンスが向上します。
例
次の例に、3番目のオーバーロード方式を示します。要素のコメントには、xdb:defaultTable="CMMNT_DEFAULT_TABLE"
と同様の注釈が付けられます。
DECLARE xml_schema xmltype; BEGIN SELECT OUT INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.SETOUTOFLINE (xml_schema, 'ipo:comment', 'CMMNT_DEFAULT_TABLE'); UPDATE annotation_tab SET OUT = xml_schema; END; /
224.3.22 SETSCHEMAANNOTATATIONSプロシージャ
このプロシージャはDBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONS
をコールした結果として生じた注釈付き差分を取り込み、それを指定されたXMLスキーマにパッチ適用します。
構文
DBMS_XMLSCHEMA_ANNOTATE.SETSCHEMAANNOTATIONS ( xmlschema IN OUT xmlType, annotations IN VARCHAR2);
パラメータ
表224-23 SETSCHEMAANNOTATIONSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
パッチ適用されるXMLスキーマ。 |
|
元のXMLスキーマと注釈付きXMLスキーマに対して |
使用上のノート
DBMS_XMLSCHEMA_ANNOTATE.SETSCHEMAANNOTATATIONS
は、Oracle Databaseリリース10.2では使用できません(Oracle Databaseリリース11.xのみ)。
例
次の例では、DBMS_XMLSCHEMA_ANNOTATE.SETSCHEMAANNOTATIONS
とGETSCHEMAANNOTATIONSファンクションを示します。
-- test getannotations and apply them declare xml_schema xmltype; xml_schema2 xmltype; annotations xmltype; begin select out into xml_schema from annotation_tab; -- get the annotations from the schema annotations := DBMS_XMLSCHEMA_ANNOTATE.getSchemaAnnotations (xml_schema); -- apply the annotations to the schema select inp into xml_schema2 from annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.setSchemaAnnotations(xml_schema2, annotations); update annotation_tab t set t.out = xml_schema2; end; /
224.3.23 SETSQLCOLLTYPEプロシージャ
このプロシージャは、コレクションのSQLタイプ名を割り当てます。コレクションは、maxOccurs>1
のグローバル要素またはローカル要素です。
XDBは、このプロシージャを使用して、指定されたユーザー定義の名前を持つSQLType
を作成します。
2つのオーバーロードがあります。最初にXML要素に対応するSQLコレクション・タイプの名前が設定され、2番目で、指定された複合タイプの内部にあるXML要素に対応するSQLコレクション・タイプの名前が設定されます。
構文
DBMS_XMLSCHEMA_ANNOTATE.SETSQLCOLLTYPE ( xmlschema IN OUT XMLTYPE, elementName IN VARCHAR2, sqlCollType IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
DBMS_XMLSCHEMA_ANNOTATE.SETSQLCOLLTYPE ( xmlschema IN OUT XMLType, globalObject IN VARCHAR2, globalObjectName IN VARCHAR2, localElementName IN VARCHAR2, sqlCollType IN VARCHAR2, overwrite IN BOOLEAN default TRUE );
パラメータ
表224-24 SETSQLCOLLTYPEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
要素名。 |
|
SQLコレクション・タイプ |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル・オブジェクトの名前 |
|
グローバル要素の下位のローカル要素の名前 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
例
item
要素には、xdb:SQLCollType="ITEM_SQL_COL_TYPE"
と同様の注釈が付けられます。
declare xml_schema xmltype; begin SELECT out INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.setSQLCollType (xml_schema, 'item', 'ITEM_SQL_COL_TYPE',TRUE); UPDATE annotation_tab SET out = xml_schema; end;
224.3.24 SETSQLNAMEプロシージャ
このプロシージャは、XMLスキーマで定義された要素に対応する名前をSQL属性に割り当てます。
構文
DBMS_XMLSCHEMA_ANNOTATE.SETSQLNAME ( xmlschema IN OUT XMLType, globalObject IN VARCHAR2, globalObjectName IN VARCHAR2, localObject IN VARCHAR2, localObjectName IN VARCHAR2, sqlName IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-25 SETSQLNAMEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル・オブジェクトの名前 |
|
グローバル・オブジェクトの下位オブジェクト |
|
ローカル・オブジェクトの名前 |
|
XMLスキーマで定義された要素に対応するSQL属性の名前 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
例
shipTo
要素には、xdb:SQLName="SHIPTO_SQLNAME"
と同様の注釈が付けられます。
DECLARE xml_schema XMLTYPE; BEGIN SELECT out INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.SETSQLNAME (xml_schema, 'element', 'purchaseOrder', 'element', 'shipTo', 'SHIPTO_SQLNAME'); UPDATE annotation_tab SET out = xml_schema; END; /
224.3.25 SETSQLTYPEプロシージャ
このプロシージャは、SQLタイプをグローバル・オブジェクトに割り当てます。
2つのオーバーロードがあります。最初のオーバーロードではSQLタイプがグローバル・オブジェクト(グローバル要素またはグローバル複合タイプなど)に割り当てられ、2回目のオーバーロードではローカル・オブジェクトに割り当てられます。
構文
DBMS_XMLSCHEMA_ANNOTATE.SETSQLTYPE ( xmlschema IN OUT XMLTYPE, globalElementName IN VARCHAR2, sqlType IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
DBMS_XMLSCHEMA_ANNOTATE.SETSQLTYPE ( xmlschema IN OUT XMLTYPE, globalObject IN VARCHAR2, globalObjectName IN VARCHAR2, localObject IN VARCHAR2, localObjectName IN VARCHAR2, sqlType IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-26 SETSQLTYPEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル・オブジェクトの名前 |
|
グローバル要素の名前 |
|
グローバル・オブジェクトの下位オブジェクト |
|
ローカル・オブジェクトの名前 |
|
指定したグローバル要素に割り当てられたSQLタイプ |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
例
purchaseOrder
要素にはxdb:SQLType="PO_SQLTYPE"
と同様の注釈が付けられ、shipTo
要素にはxdb:SQLType="VARCHAR"
と同様の注釈が付けられます。
DECLARE xml_schema xmltype; BEGIN SELECT out INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.setSQLType (xml_schema, 'purchaseOrder', 'PO_SQLTYPE'); UPDATE annotation_tab SET out = xml_schema; END; / DECLARE xml_schema xmltype;BEGIN SELECT out INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.setSQLType (xml_schema, 'element','purchaseOrder', 'element' ,'shipTo', 'VARCHAR'); UPDATE annotation_tab SET out = xml_schema;END; /
224.3.26 SETSQLTYPEMAPPINGプロシージャ
このプロシージャは、スキーマ・タイプとSQLタイプのマッピングを定義します。
このプロシージャを使用する場合、スキーマ・タイプのすべてのインスタンスでSETSQLTYPE
プロシージャをコールする必要はありません。かわりに、プロシージャがスキーマ全体を横断して、SQLタイプを自動的に割り当てます。
構文
DBMS_XMLSCHEMA_ANNOTATE.SETSQLTYPEMAPPING ( xmlschema IN OUT XMLType, schemaTypeName IN VARCHAR2, sqlTypeName IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-27 SETSQLTYPEMAPPINGプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
スキーマ・タイプ。 |
|
SQLタイプの名前 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
例
属性orderDate
には、xdb:SQLType="DATE"
と同様の注釈が付けられます。
declare xml_schema xmltype;beginSELECT out INTO xml_schema FROM annotation_tab;DBMS_XMLSCHEMA_ANNOTATE.setSQLTypeMapping (xml_schema, 'date', 'DATE');UPDATE annotation_tab SET out = xml_schema;end; /
224.3.27 SETTABLEPROPSプロシージャ
このプロシージャは、デフォルトのCREATE
TABLE文に追加されるTABLE
記憶域の句にプロパティを指定します。
次のように、異なるパラメータ要件を持つ2つのオーバーロードが存在します。
構文
DBMS_XMLSCHEMA_ANNOTATE.SETTABLEPROPS ( xmlschema IN OUT XMLType, globalElementName IN VARCHAR2, tableProps IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
DBMS_XMLSCHEMA_ANNOTATE.SETTABLEPROPS ( xmlschema IN OUT XMLTYPE, globalObject IN VARCHAR2, globalObjectName IN VARCHAR2, localElementName IN VARCHAR2, tableProps IN VARCHAR2, overwrite IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-28 SETTABLEPROPSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
スキーマ内のグローバル要素の名前 |
|
表のプロパティ。 |
|
グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素) |
|
グローバル・オブジェクトの名前 |
|
グローバル要素の下位のローカル要素の名前 |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |
例
purchaseOrder
要素には、xdb:tableProps="CACHE"
と同様の注釈が付けられます。
DECLARE xml_schema XMLTYPE;BEGIN SELECT out INTO xml_schema FROM annotation_tab; DBMS_XMLSCHEMA_ANNOTATE.SETTABLEPROPS(xml_schema, 'purchaseOrder' ,'CACHE'); UPDATE annotation_tab SET out = xml_schema;END; /
224.3.28 SETTIMESTAMPWITHTIMEZONEプロシージャ
このプロシージャは、TIMESTAMPWITHTIMEZONE
データ・タイプを、XMLスキーマ内のすべてのdateTime
タイプの要素に設定します。
これは、xdb:SQLType="TIMESTAMP WITH TIME ZONE"
をすべてのdateTime
オブジェクトに追加するのと同じです。
構文
DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE
(
xmlschema IN OUT XMLTYPE,
overwrite IN BOOLEAN DEFAULT TRUE);
パラメータ
表224-29 SETTIMESTAMPWITHTIMEZONEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
注釈を付けるXMLスキーマ |
|
プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトは |