ヘッダーをスキップ
Oracle® Data Provider for .NET開発者ガイド
12c リリース1(12.1)
B72971-07
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

OracleXmlSavePropertiesクラス

OracleXmlSavePropertiesオブジェクトは、XmlCommandTypeプロパティがInsertUpdateまたはDeleteである場合に、OracleCommandクラスにより使用されるXMLプロパティを表します。

クラスの継承

System.Object

  System.OracleXmlSaveProperties

宣言

public sealed class OracleXmlSaveProperties : ICloneable

要件

プロバイダ ODP.NET管理対象外ドライバ
アセンブリ Oracle.DataAccess.dll
ネームスペース Oracle.DataAccess.Client
.NET Framework 3.5, 4.0, 4.5

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

備考

OracleXmlSavePropertiesは、OracleCommandクラスのXmlSavePropertiesプロパティを使用してアクセスおよび変更できます。各OracleCommandオブジェクトには、XmlSavePropertiesプロパティに、OracleXmlSavePropertiesクラスの独自のインスタンスが含まれます。

OracleXmlSavePropertiesの新規インスタンスを取得するには、デフォルトのコンストラクタを使用します。 OracleXmlSaveProperties.Clone()メソッドを使用して、 OracleXmlSavePropertiesインスタンスのコピーを取得します。

このサンプルでは、XML文書を使用して、リレーショナル表またはビューに対して挿入、更新および削除を実行する方法を示しています。

// C#
/* -- If HR account is being locked, you need to log on as a DBA
   -- to unlock the account first. Unlock a locked users account:
   
   ALTER USER hr ACCOUNT UNLOCK; 
*/
 
using System;
using Oracle.DataAccess.Client;
 
class OracleXmlSavePropertiesSample
{
  static void Main()
  {
    string[] KeyColumnsList = null;
    string[] UpdateColumnsList = null;
    int rows = 0;
      
    // Create the connection.
    string constr = "User Id=hr;Password=hr;Data Source=oracle";
    OracleConnection con = new OracleConnection(constr);
    con.Open();
      
    // Create the command.
    OracleCommand cmd = new OracleCommand("", con);
      
    // Set the XML command type to insert.
    cmd.XmlCommandType = OracleXmlCommandType.Insert;
      
    // Set the XML document.
    cmd.CommandText = "<?xml version=\"1.0\"?>\n" +
      "<ROWSET>\n" +
      " <MYROW num = \"1\">\n" +
      " <EMPLOYEE_ID>1234</EMPLOYEE_ID>\n" +
      " <LAST_NAME>Smith</LAST_NAME>\n" +
      " <EMAIL>Smith@Oracle.com</EMAIL>\n" +
      " <HIRE_DATE>1982-01-23T00:00:00.000</HIRE_DATE>\n" +
      " <JOB_ID>IT_PROG</JOB_ID>\n" +
      " </MYROW>\n" +
      " <MYROW num = \"2\">\n" +
      " <EMPLOYEE_ID>1235</EMPLOYEE_ID>\n" +
      " <LAST_NAME>Barney</LAST_NAME>\n" +
      " <EMAIL>Barney@Oracle.com</EMAIL>\n" +
      " <HIRE_DATE>1982-01-23T00:00:00.000</HIRE_DATE>\n" +
      " <JOB_ID>IT_PROG</JOB_ID>\n" +
      " </MYROW>\n" +
      "</ROWSET>\n";
        
    // Set the XML save properties.
    KeyColumnsList = new string[1];
    KeyColumnsList[0] = "EMPLOYEE_ID";
    UpdateColumnsList = new string[5];
    UpdateColumnsList[0] = "EMPLOYEE_ID";
    UpdateColumnsList[1] = "LAST_NAME";
    UpdateColumnsList[2] = "EMAIL";
    UpdateColumnsList[3] = "HIRE_DATE";
    UpdateColumnsList[4] = "JOB_ID";
    cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList;
    cmd.XmlSaveProperties.RowTag = "MYROW";
    cmd.XmlSaveProperties.Table = "employees";
    cmd.XmlSaveProperties.UpdateColumnsList = UpdateColumnsList;
    cmd.XmlSaveProperties.Xslt = null;
    cmd.XmlSaveProperties.XsltParams = null;
      
    // Do the inserts.
    rows = cmd.ExecuteNonQuery();
    Console.WriteLine("rows: " + rows);
      
    // Set the XML command type to update.
    cmd.XmlCommandType = OracleXmlCommandType.Update;
      
    // Set the XML document.
    cmd.CommandText = "<?xml version=\"1.0\"?>\n" +
      "<ROWSET>\n" +
      " <MYROW num = \"1\">\n" +
      " <EMPLOYEE_ID>1234</EMPLOYEE_ID>\n" +
      " <LAST_NAME>Adams</LAST_NAME>\n" +
      " </MYROW>\n" +
      "</ROWSET>\n";
        
    // Set the XML save properties.
    KeyColumnsList = new string[1];
    KeyColumnsList[0] = "EMPLOYEE_ID";
    UpdateColumnsList = new string[1];
    UpdateColumnsList[0] = "LAST_NAME";
    cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList;
    cmd.XmlSaveProperties.UpdateColumnsList = UpdateColumnsList;
    rows = cmd.ExecuteNonQuery();
    Console.WriteLine("rows: " + rows);
      
    // Set the XML command type to delete.
    cmd.XmlCommandType = OracleXmlCommandType.Delete;
      
    // Set the XML document.
    cmd.CommandText = "<?xml version=\"1.0\"?>\n" +
      "<ROWSET>\n" +
      " <MYROW num = \"1\">\n" +
      " <EMPLOYEE_ID>1234</EMPLOYEE_ID>\n" +
      " </MYROW>\n" +
      " <MYROW num = \"2\">\n" +
      " <EMPLOYEE_ID>1235</EMPLOYEE_ID>\n" +
      " </MYROW>\n" +
      "</ROWSET>\n";
        
    // Set the XML save properties.
    KeyColumnsList = new string[1];
    KeyColumnsList[0] = "EMPLOYEE_ID";
    cmd.XmlSaveProperties.KeyColumnsList = KeyColumnsList;
    cmd.XmlSaveProperties.UpdateColumnsList = null;
      
    // Do the deletes.
    rows = cmd.ExecuteNonQuery();
    Console.WriteLine("rows: " + rows);
      
    // Clean up.
    cmd.Dispose();
    con.Close();
    con.Dispose();
  }
}

OracleXmlSavePropertiesメンバー

次の表にOracleXmlSavePropertiesメンバーをリストします。

OracleXmlSavePropertiesコンストラクタ

OracleXmlSavePropertiesコンストラクタを、表7-7にリストします。

表7-7 OracleXmlSavePropertiesコンストラクタ

コンストラクタ 説明

OracleXmlSavePropertiesコンストラクタ

OracleXmlSavePropertiesクラスの新規インスタンスをインスタンス化します


OracleXmlSavePropertiesプロパティ

OracleXmlSavePropertiesプロパティを、表7-8にリストします。

表7-8 OracleXmlSavePropertiesプロパティ

名前 説明

KeyColumnsList

XMLドキュメントを使用して更新または削除する既存の行を検出するキーとして使用される列のリストを指定します。

RowTag

XMLドキュメント内のデータの行を識別するXML要素の値を指定します。

Table

変更を保存する表またはビューの名前を指定します。

UpdateColumnsList

更新または挿入する列のリストを指定します。

Xslt

XSLTを使用したXML変換に使用するXSLドキュメントを指定します。

XsltParams

Xsltプロパティ内で指定されるXSLTドキュメントのパラメータを指定します。


OracleXmlSavePropertiesパブリック・メソッド

OracleXmlSavePropertiesパブリック・メソッドを、表7-9にリストします。

表7-9 OracleXmlSavePropertiesパブリック・メソッド

名前 説明

Clone

OracleXmlSavePropertiesオブジェクトのコピーを作成します


OracleXmlSavePropertiesコンストラクタ

OracleXmlSavePropertiesコンストラクタでは、OracleXmlSavePropertiesクラスの新規インスタンスをインスタンス化します。

宣言

// C#
public OracleXmlSaveProperties;

OracleXmlSavePropertiesプロパティ

OracleXmlSavePropertiesプロパティを、表7-10にリストします。

表7-10 OracleXmlSavePropertiesプロパティ

名前 説明

KeyColumnsList

XMLドキュメントを使用して更新または削除する既存の行を検出するキーとして使用される列のリストを指定します。

RowTag

XMLドキュメント内のデータの行を識別するXML要素の値を指定します。

Table

変更を保存する表またはビューの名前を指定します。

UpdateColumnsList

更新または挿入する列のリストを指定します。

Xslt

XSLTを使用したXML変換に使用するXSLドキュメントを指定します。

XsltParams

Xsltプロパティ内で指定されるXSLTドキュメントのパラメータを指定します。


KeyColumnsList

このプロパティは、XMLドキュメントを使用して更新または削除する既存の行を検出するためのキーとして使用される列のリストを指定します。

宣言

// C#
public string[] KeyColumnsList {get; set;}

プロパティ値

列のリスト。

備考

デフォルト値はNULLです。

最初のNULL値(ある場合)はリストを停止します。

XMLCommandTypeプロパティ値を持つKeyColumnsListの使用方法

  • Insert - KeyColumnsListは無視され、NULLになります。

  • Update - KeyColumnsListを指定する必要があります。これは更新する行を検索するために使用する列を識別します。

  • Delete - KeyColumnsListがNULLの場合、XMLドキュメント内の各行要素の列値すべてを使用して、削除する行を検出します。それ以外の場合、KeyColumnsListは削除する行を識別するために使用する列を指定します。

RowTag

このプロパティでは、XMLドキュメント内のデータの行を識別するXML要素の値を指定します。

宣言

// C#
public string RowTag {get; set;}

プロパティ値

XML要素名。

備考

デフォルト値はROWです。

XMLドキュメント内の各要素は、表またはビュー内の行を識別します。

RowTag""またはnullに設定されている場合、XMLドキュメント内に行タグは使用されません。この場合、XMLドキュメントに含まれるのは1行のみと仮定されます。

Table

このプロパティでは変更を保存する表またはビューの名前を指定します。

宣言

// C#
public string Table {get; set;}

プロパティ値

表の名前。

備考

デフォルト値はNULLです。

このプロパティには、有効な表またはビュー名を設定する必要があります。

UpdateColumnsList

このプロパティでは更新または挿入する列のリストを指定します。

宣言

// C#
public string[] UpdateColumnsList {get; set;}

プロパティ値

列のリスト。

備考

デフォルト値はNULLです。

最初のNULL値(ある場合)はリストを停止します。

XMLCommandTypeプロパティ値を持つUpdateColumnListの使用方法:

  • Insert - UpdateColumnListは、新しい行が作成された場合に値を割り当てられる列を示します。UpdateColumnListがNULLの場合、すべての列に値が割り当てられます。列がUpdateColumnListにあり、値がXMLファイル内に割り当てられていない場合、NULLが使用されます。列がUpdateColumnListにない場合、その列のデフォルト値が使用されます。

  • Update - UpdateColumnListでは、XMLドキュメント内の各行のデータに対して変更する列を指定します。UpdateColumnListがNULLの場合、XMLドキュメント内の各XML要素のすべての値を使用して列を変更します。

  • Delete - UpdateColumnsListがNULLの場合は無視されます。

Xslt

このプロパティでは、XSLTを使用するXML変換に使用するXSLドキュメントを指定します。

宣言

// C#
public string Xslt {get; set;}

プロパティ値

XML変換に使用するXSLドキュメント。

備考

デフォルト = null

所定のXMLドキュメントのXSLT変換にはXSLドキュメントを使用します。変換したXMLドキュメントを使用して、表またはビューに加えられた変更を保存します。

XsltParams

このプロパティでは、Xsltプロパティ内で指定するXSLTドキュメントのパラメータを指定します。

宣言

// C#
public string XsltParams {get; set;}

プロパティ値

XSLTドキュメントのパラメータ。

備考

デフォルトはnullです。

このプロパティは、"param1=value1; param2=value2;..."形式の"name=value"ペアをセミコロンで区切った文字列です。

OracleXmlSavePropertiesパブリック・メソッド

OracleXmlSavePropertiesパブリック・メソッドを、表7-11にリストします。

表7-11 OracleXmlSavePropertiesパブリック・メソッド

名前 説明

Clone

OracleXmlSavePropertiesオブジェクトのコピーを作成します


Clone

このメソッドでは、OracleXmlSavePropertiesオブジェクトのコピーを作成します。

宣言

// C#
public object Clone();

戻り値

OracleXmlSavePropertiesオブジェクト

実装

ICloneable