『Oracle XML DB開発者ガイド』の今回のリリースにおける変更点

はじめに、最新の2つのデータベースのメジャー・リリースにおけるOracle XML DBの変更点について説明します。

Oracle Database 12cリリース2 (12.2.0.1)でのOracle XML DBの変更

Oracle Database 12cリリース2 (12.2.0.1)でのOracle XML DBの変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

XMLIndexのパーティション化サポートの改善

XMLIndex索引付けによる、パーティション化されたXMLTypeデータの使用が改善されました。

  • 時間隔パーティション化された表または参照パーティション化された表のXMLTypeデータに対して、XMLIndex索引を作成できるようになりました。

  • パッケージDBMS_XMLSTORAGE_MANAGEの新しいPL/SQLプロシージャ(refPartitionExchangeInおよびrefPartitionExchangeOut)によって、XMLIndexを使用する参照パーティション化された表に対して、パーティション交換が実行されます。

  • 表レベルおよびパーティション・レベルに加えて、索引レベルでXMLIndexTABLESPACEを指定できるようになりました。

バイナリXMLデータのクライアント側デコード

JDBC接続でプロパティORACLE.XDB.XMLType.decode_on_clientを使用して、バイナリXMLデータにクライアント側デコードを指定できるようになりました。デフォルトでは、クライアント側デコードが有効になります。これを無効にするには、メソッドsetClientInfoを使用して、プロパティ値をFALSEに設定します。

オンラインでの再定義を使用したXMLType記憶域モデルの変更

オンラインでの再定義を使用して、バイナリXML記憶域の形式との間でXMLTypeデータを移動できるようになりました。

Exadataを使用したXMLプッシュダウン

4KB未満のSecureFiles LOBを使用してXMLデータが格納される場合は、Oracle SQL条件XMLExistsのSQL WHERE句内の評価、またはOracle SQL関数XMLQueryの戻り値に適用されたOracle SQL関数XMLCastを、Exadata Storage Serverにオフロードできる場合があります。

レプリケーションに対する階層対応表のサポート

階層対応のXMLType表が、Oracle Data Guard SQL Apply (ロジカル・スタンバイ)とOracle GoldenGateレプリケーションでサポートされるようになりました。

SCANリスナーによるRACクラスタのノード間でのHTTPリクエストの分散

単一クライアント・アクセス名(SCAN)リスナーにより、RACクラスタのノード間でHTTPリクエストが分散されるようになりました。ただし、特権ポート(1024未満のポート番号)は、SCANリスナーで使用できません。

アクセス・ドライバORACLE_LOADERを使用したXML文書からのサブドキュメントのロード

アクセス・ドライバORACLE_LOADERXMLTAG句を使用して、XML文書からのサブドキュメントのロードに使用するXMLタグを指定できるようになりました。

非推奨となった機能

次の機能は今回のリリースで非推奨となり、今後のリリースではサポートされない可能性があります。

  • Oracle XQuery関数ora:contains。かわりにXQuery Full Textを使用してください。Oracle Text索引の使用からXML検索索引への移行を参照してください。

  • Oracle SQL関数XMLRoot。かわりに、バージョン番号付きのSQL/XML関数XMLSerialize()を使用してください。

  • 索引構成表(IOT)として格納されたネストした表。これには、ネストした表の列Nを持つ表を作成するときに、オプションDBMS_XMLSCHEMA.REGISTER_NT_AS_IOTと句NESTED TABLE N STORE AS ... (ORGANIZATION INDEX)の両方の使用が含まれます。

    かわりに、ネストした表の列はヒープ・ストレージを使用して格納してください(PL/SQLプロシージャDBMS_XMLSCHEMA.registerSchemaのデフォルトの動作)。
  • PL/SQLプロシージャDBMS_XSLPROCESSOR.CLOB2FILE。かわりに新しいプロシージャDBMS_LOB.CLOB2FILEを使用します。

  • PL/SQL関数DBMS_XSLPROCESSOR.READ2CLOB。かわりにDBMS_LOB.LOADCLOBFROMFILE を使用してください。

  • Oracle XML DBでのXLinkの使用。Oracle XML DBでのXLinkおよびXIncludeの使用を参照してください。

  • JSR-170としてJavaコミュニティが開発した標準Java APIであるContent Repository API for Java (JCRとも呼ばれる)を実装する、Oracle XML DB Content Connector。非推奨のContent Repository API for Javaを参照してください。

  • 表-1に示すXMLTypeのJavaコンストラクタおよびメソッド。

表-1は、Oracle Database 12c リリース2 (12.2.0.1)で非推奨となったXMLTypeのJavaコンストラクタおよびメソッドを示しています。

非推奨となったXMLTypeコンストラクタまたはメソッド 代替
createXML(java.sql.Connection conn,
          java.lang.String xmlval
java.sql.Connection conn;
SQLXML newXML = conn.createSQLXML();
newXML.setString(xmlval);
createXML(Connection conn,
          Document dom)
java.sql.Connection conn;
SQLXML newXML = conn.createSQLXML();
DOMResult dom = newXML.setResult(DOMResult.class);
getDocument()
または
getDOM()
SQLXML sx;
DOMSource ds;
sx.getSource(DOMSource.class);
Document doc = (Document) ds.getNode();
getStringVal()
SQLXML sx;
String str = sx.getString();
existsNode(java.lang.String xpath,
           java.lang.String nsmap)

または

extract(java.lang.String xpath,
        java.lang.String nsmap)

代替はありません

getBytesValue()

代替はありません

close()
SQLXML sx;
sx.free();

サポート対象外機能

次の機能は、このリリースではサポートされなくなりました。

  • Oracle XPath関数ora:instanceof: かわりに、XQuery演算子instance ofを使用してください。

  • Oracle XPath関数ora:instanceof-only: かわりに、XML Schema属性xsi:typeを使用してください。

  • Oracle XQuery関数ora:view: かわりに、XQuery関数fn:docおよびfn:collectionを使用してください。

  • オブジェクト・リレーショナルXMLTypeデータ内に埋込みのCLOB XMLTypeデータ上のXMLIndex索引

  • XMLTypeのファンクション索引: かわりに、構造化コンポーネントが含まれるXMLIndex索引を使用してください。

  • XML Schema注釈(属性) csx:encodingType

  • パッケージoracle.xdb.domのJavaクラス。

  • パッケージDBMS_XDB_ADMINの次のPL/SQLプロシージャ:

    • createRepositoryXMLIndex

    • XMLIndexAddPath

    • XMLIndexRemovePath

    • dropRepositoryXMLIndex

Oracle Database 12cリリース1 (12.1.0.2)でのOracle XML DBの変更

Oracle Database 12cリリース1 (12.1.0.2)でのOracle XML DBの変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

JSONのサポート

Oracle Databaseは、JavaScript Object Notation (JSON)をサポートするようになりました。

レルム構成のためのPL/SQLサブプログラム

PL/SQLサブプログラムgetHTTPConfigRealmsetHTTPConfigRealmが、パッケージDBMS_XDB_CONFIGに追加されました。

Oracle Database 12cリリース1 (12.1.0.1)でのOracle XML DBの変更

『Oracle XML DB開発者ガイド』でのOracle Database 12cリリース1 (12.1.0.1)の変更点は次のとおりです。

新機能

このリリースの新機能は次のとおりです。

Oracle XML DBは必須(削除不可)

Oracle XML DBはOracle Databaseの必須コンポーネントになりました。削除できない上、Oracle Databaseを作成する場合は必ず含める必要があります。データベースの新規作成時、または既存のデータベースをOracle Database 12cにアップグレードする際、自動的にインストールされます。

Oracle XML DBの自動インストールも参照してください。

XQuery Updateのサポート

Oracle XML DBではXQuery Updateをサポートするようになりました。XMLデータを更新するためのOracle固有のSQL関数は非推奨になっています。

関連項目:

XQuery Full Textのサポート

Oracle XML DBではXQuery Full Textをサポートするようになりました。

新しいXQuery拡張式プラグマ

新しいXQuery拡張式プラグマについて説明します。

新たに導入されたXQuery拡張式プラグマは次のとおりです。

  • (#ora:child-element-name name #) - 挿入される子要素に使用する名前を指定します。

  • (#ora:no_schema #) - XQuery Full Text式でXML Schemaに基づくXMLTypeデータを使用した場合に、エラーを発生させません。

  • (#ora:use_xmltext_idx #) - XML検索索引(使用可能な場合)を使用して問合せを評価します。XMLIndex索引またはストリーミング評価は使用しません。

レプリケーションおよびローリング・アップグレードのサポート

次の新機能により、レプリケーションおよびローリング・アップグレードに対するサポートが強化されました。

Oracle GoldenGateおよびOracle Data Guard SQL ApplyによるXMLTypeのサポート

Oracle GoldenGateレプリケーションおよびOracle Data Guard SQL Apply (ロジカル・スタンバイ)は、すべてのXMLType記憶域モデルでサポートされるようになりました。

関連項目:

ローリング・アップグレードでOracle XML DBリポジトリをサポート

ローリング・アップグレードを実行する場合、Oracle XML DBリポジトリ操作は、SQL Applyステップの一部としてスタンバイ・データベースに適用されます。

適用される制限については、既存のOracle XML DBのインストールのアップグレードまたはダウングレードを参照してください。

XMLTypeに対するパラレルDMLのサポート

パラレルDMLのサポートは、SecureFiles LOBを使用したXMLType記憶域モデル(バイナリXML)で向上しています。CREATE TABLE AS SELECTおよびINSERT AS SELECTの両方で、パフォーマンスと拡張性が向上しています。

XMLIndexの改善

XMLIndexを使用したXMLデータの索引付けの改善点は次のとおりです。

XMLIndex索引の同期化の向上

XMLIndex索引の同期化は、2つの方法で改善されました。

  • UNDOの領域の使用量が低減。

  • 索引付けの実行中にエラーが発生した場合、索引の同期化作業の大部分を保存。

XMLIndexのハッシュ・パーティション化のサポート

(レンジ・パーティション化とリスト・パーティション化の他に)ハッシュ・パーティション化を使用してパーティション化されたXMLType表および列に対して、パーティション化されたローカルのXMLIndex索引を作成できます。

PL/SQLパッケージDBMS_XDBの分割

PL/SQLパッケージDBMS_XDBのサブプログラムおよび定数は、次のパッケージに分割されました。

  • DBMS_XDB_ADMIN

  • DBMS_XDB_CONFIG

  • DBMS_XDB_REPOS

パッケージDBMS_XDB_CONFIGおよびDBMS_XDB_REPOSはOracle Database 12cリリース1 (12.1.0.1)で新たに導入されました。パッケージDBMS_XDBは、下位互換性のために引き続き存在します。

関連項目:

Digestアクセス認証を使用したリポジトリへのアクセス

Basic認証の他に、Digestアクセス認証(Digest認証とも呼ばれる)を使用してOracle XML DBリポジトリにアクセスできるようになりました。これにより、ユーザーの資格証明(ユーザー名、パスワードなど)を暗号化することで、データ全体の暗号化に伴うオーバーヘッドが生じません。

ユーザー資格証明は大文字と小文字が区別されます。具体的には、認証を受けるユーザー名は作成された名前と正確に一致する必要があります(デフォルトでは、すべて大文字)。

関連項目:

DBFSのサポート

Oracle XML DBリポジトリから、リポジトリ・パス/dbfsの下にあるOracle Database File System (DBFS)のファイルとフォルダにアクセスできるようになりました。この新しい機能を使用すると、DBFSファイルとフォルダへのFTPおよびHTTP(S)/WebDAVアクセスが可能です。

XQuery API for Java (XQJ)のサポート

Oracle XML Developer's KitおよびXQuery API for Java (XQJ)を使用し、JavaプログラムのXQuery式を使用してデータベースのXMLデータにアクセスできるようになりました。具体的には、ローカルのJavaプログラムから、リモート・データベースに格納されているXMLデータにアクセスできます。

非推奨となった機能

次の機能は今回のリリースで非推奨となり、今後のリリースではサポートされない可能性があります。

  • XMLTypeCLOB記憶域(非構造化記憶域とも呼ばれる)は非推奨になりました。かわりにXMLTypeのバイナリXML記憶域を使用してください。

    無意味な空白を維持する必要がある場合は、元のXML文書のコピーを2つ(1つはデータベースとXMLの処理で使用するXMLTypeインスタンスとして、もう1つはドキュメントの再現性を実現するCLOBインスタンスとして)格納します。

  • オブジェクト・リレーショナルXMLTypeデータに埋め込まれているCLOBインスタンスとして格納されたXMLフラグメントに対するXMLIndex索引の作成は、非推奨になりました。このようなフラグメントのデータを索引付けする必要がある場合は、オブジェクト・リレーショナル記憶域ではなく、バイナリXML記憶域を使用して文書を格納します。

  • 次に示す、パッケージDBMS_XMLSCHEMA内のPL/SQLサブプログラムは非推奨になりました。

    • generateSchema

    • generateSchemas

    これらの構造体の代用はなく、この変更に対する回避策はありません。

  • DBMS_XDB_CONFIGは新しいPL/SQLパッケージです。Oracle XML DBのすべての構成関数、プロシージャおよび構造体は、パッケージDBMS_XDBからDBMS_XDB_CONFIGに移動されています。これらは、パッケージDBMS_XDBでは非推奨です。かわりにパッケージDBMS_XDB_CONFIGで使用することをお薦めします。

    パッケージDBMS_XDBで非推奨となったサブプログラムは次のとおりです。

    • ADDHTTPEXPIREMAPPING

    • ADDMIMEMAPPING

    • ADDSCHEMALOCMAPPING

    • ADDSERVLET

    • ADDSERVLETMAPPING

    • ADDSERVLETSECROLE

    • ADDXMLEXTENSION

    • CFG_GET

    • CFG_REFRESH

    • CFG_UPDATE

    • DELETEHTTPEXPIREMAPPING

    • DELETEMIMEMAPPING

    • DELETESCHEMALOCMAPPING

    • DELETESERVLET

    • DELETESERVLETMAPPING

    • DELETESERVLETSECROLE

    • DELETEXMLEXTENSION

    • GETFTPPORT

    • GETHTTPPORT

    • GETLISTENERENDPOINT

    • SETFTPPORT

    • SETHTTPPORT

    • SETLISTENERENDPOINT

    • SETLISTENERLOCALACCESS

    パッケージDBMS_XDBで非推奨となった定数は次のとおりです。

    • XDB_ENDPOINT_HTTP

    • XDB_ENDPOINT_HTTP2

    • XDB_PROTOCOL_TCP

    • XDB_PROTOCOL_TCPS

  • XMLデータを更新するためのOracle SQL関数はすべて非推奨になっています。かわりに、XQuery Updateを使用することをお薦めします。非推奨のXML更新関数は次のとおりです。

    • updateXML

    • insertChildXML

    • insertChildXMLbefore

    • insertChildXMLafter

    • insertXMLbefore

    • insertXMLafter

    • appendChildXML

    • deleteXML

  • Oracle SQL関数sys_xmlgenは非推奨になりました。かわりにSQL/XML生成関数を使用することをお薦めします。

  • 次のOracle XQuery関数は非推奨になりました。かわりに、対応する標準のXQuery関数(同じ名前に名前空間接頭辞fnの付いた関数)を使用してください。

    • ora:matches: かわりにfn:matchesを使用

    • ora:replace: かわりにfn:replaceを使用

  • XML変換をサポートする次のOracle構造体は非推奨になりました。

    • PL/SQLパッケージDBMS_XMLTRANSLATIONS

    • Oracle XPath関数ora:translate

    • XML Schema注釈xdb:maxOccursxdb:srclangおよびxdb:translate

    これらの構造体の代用はなく、この変更に対する回避策はありません。

  • 次のXML Schema注釈は非推奨になりました。

    • xdb:defaultTableSchema

    • xdb:maintainOrder

    • xdb:mapUnboundedStringToLob

    • xdb:maxOccurs脚注1

    • xdb:SQLCollSchema

    • xdb:SQLSchema

    • xdb:srclang脚注1

    • xdb:storeVarrayAsTable

    • xdb:translate脚注1

    これらの構造体の代用はなく、この変更に対する回避策はありません。

  • エクスポート・パラメータdata_optionsの値xml_clobsは、Oracle Database 12cリリース1 (12.1)から非推奨になりました。

サポート対象外機能

次の機能は、Oracleではサポートされなくなりました。

このリリースにおけるサポート対象外の機能の完全なリストは、Oracle Databaseアップグレード・ガイドを参照してください。

  • CTXSYS.CTXXPATH索引はサポートされていません。かわりにXMLIndex索引を使用します



脚注の説明

脚注1:

非推奨となったXML変換のサポートについては、非推奨となった機能も参照してください。