ヘッダーをスキップ
Oracle Data Provider for .NET開発者ガイド
11g リリース1(11.1)
E05791-01
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

OracleXmlSavePropertiesクラス

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

クラスの継承

System.Object

  System.OracleXmlSaveProperties

宣言

public sealed class OracleXmlSaveProperties : ICloneable

スレッド安全性

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

備考

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();
  }
}

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

Microsoft .NET Frameworkバージョン: 1.xまたは2.0


OracleXmlSavePropertiesメンバー

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

OracleXmlSavePropertiesコンストラクタ

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

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

コンストラクタ 説明

OracleXmlSavePropertiesコンストラクタ

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


OracleXmlSavePropertiesプロパティ

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

表6-8 OracleXmlSavePropertiesプロパティ

名前 説明

KeyColumnsList

XML文書を使用して更新または削除の対象となる既存の行を検索するためのキーとして使用される列のリストを指定します

RowTag

XML文書内のデータの行を識別するXML要素の値を指定します

Table

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

UpdateColumnsList

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

Xslt

XSLTを使用したXML変換に使用されるXSL文書を指定します

XsltParams

XSLTプロパティに指定されているXSLT文書のパラメータを指定します


OracleXmlSavePropertiesパブリック・メソッド

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

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

名前 説明

Clone

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



OracleXmlSavePropertiesコンストラクタ

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

宣言

// C#
public OracleXmlSaveProperties;

OracleXmlSavePropertiesプロパティ

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

表6-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値(存在する場合)はリストを終了します。

KeyColumnsListXMLCommandTypeプロパティ値の使用:

RowTag

このプロパティは、XML文書内のデータの行を識別するXML要素の値を指定します。

宣言

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

プロパティ値

XML要素名

備考

デフォルトの値はROWです。

XML文書内の各要素は、表またはビューの1行を識別します。

RowTag""またはnullに設定すると、XML文書内では行タグが使用されません。この場合、XML文書には1行のみが含まれると想定されます。

Table

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

宣言

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

プロパティ値

表の名前

備考

デフォルトの値はnullです。

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

UpdateColumnsList

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

宣言

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

プロパティ値

列のリスト

備考

デフォルトの値はNULLです。

最初のNULL値(存在する場合)はリストを終了します。

UpdateColumnListXMLCommandTypeプロパティ値の使用:

Xslt

このプロパティは、XSLTを使用してXML変換を行う際に使用するXSL文書を指定します。

宣言

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

プロパティ値

XML変換に使用するXSL文書

備考

デフォルト = null

XSL文書は、指定されたXML文書のXSLT変換に使用します。変換されたXML文書は、表またはビューの変更の保存に使用します。

XsltParams

このプロパティは、Xsltプロパティに指定されているXSLT文書のパラメータを指定します。

宣言

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

プロパティ値

XSLT文書のパラメータ

備考

デフォルトはnullです。

パラメータを指定する際は、文字列「name=value」ペアを「param1=value1; param2=value2; …」のようにセミコロンで区切って指定します。


OracleXmlSavePropertiesパブリック・メソッド

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

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

名前 説明

Clone

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


Clone

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

宣言

// C#
public object Clone();

戻り値

OracleXmlSavePropertiesオブジェクト

実装

ICloneable