15 Oracle XML DBおよびOracle Data Provider for .NET

Oracle Data Provider for Microsoft .NET (ODP.NET)は、Oracle Databaseに対するデータ・プロバイダの実装です。ODP.NETは、Oracle固有のAPIを使用して、すべての.NETアプリケーションからOracleのデータおよび機能への迅速で信頼性の高いアクセスを提供します。

また、ODP.NETは、Microsoft .NET Framework Class Libraryで入手可能なクラスおよびインタフェースを使用し、継承します。ODP.NETでは、.NETのネイティブLOBデータ型として、BLOBCLOBNCLOBおよびBFILEがサポートされます。

15.1 Oracle XML DBとODP.NET XML

ODP.NETでは、Oracle XML DBを介して、データベースでXMLデータがネイティブにサポートされます。

ODP.NET:

  • XMLデータをXMLTypeとしてOracle Databaseにネイティブに格納します。

  • Oracle DatabaseからMicrosoftの.NET環境まで、リレーショナル・データおよびオブジェクト・リレーショナル・データにXMLデータとしてアクセスし、Microsoftの.NET Frameworkを使用してXMLを処理します。

  • XMLデータを使用して、変更内容をデータベース・サーバーに保存します。

  • 次のXML固有のクラスが提供されます。

    • OracleXmlType

    • OracleXmlStream

    • OracleXmlQueryProperties

    • OracleXmlSaveProperties

  • クラスOracleCommandOracleConnectionおよびOracleDataReaderを拡張します。

15.2 ODP.NETとのXMLTypeデータの使用

データベースから.NETにXMLTypeデータを渡す例を示します。

例15-1では、データベースから.NETにXMLTypeデータが取り出され、結果が出力されます。

関連項目:

Oracle XML DBに対するOracle .NETサポートの詳細は、Oracle Data Provider for .NET開発者ガイドfor Microsoft Windowsを参照してください。

例15-1 .NETへのXMLTypeデータの取出し

//Create OracleCommand and query XMLType 
OracleCommand xmlCmd = new OracleCommand(); 
poCmd.CommandText = "SELECT po FROM po_tab";
poCmd.Connection = conn;
// Execute OracleCommand and output XML results to an OracleDataReader 
OracleDataReader poReader = poCmd.ExecuteReader(); 
// ODP.NET native XML data type object from Oracle XML DB 
OracleXmlType poXml; 
string str = ""; //read XML results 
while (poReader.Read()) 
{ 
  // Return OracleXmlType object of the specified XmlType column 
  poXml = poReader.GetOracleXmlType(0);     
  // Concatenate output for all the records 
  str = str + poXml.Value; 
} //Output XML results to the screen 
Console.WriteLine(str);