プライマリ・コンテンツに移動

Oracle® Data Provider for .NET開発者ガイド ODAC 12.2c リリース1 (12.2.0.1) for Microsoft Windows E88311-03 |
| 目次 | 索引

前 | 次 |

# OracleXmlSavePropertiesクラス

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

クラスの継承

`System.Object`

`System.OracleXmlSaveProperties`

宣言

    public sealed class OracleXmlSaveProperties : ICloneable

要件

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

スレッド安全性

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

備考

`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.ManagedDataAccess.Clientのネームスペース

- OracleXmlSavePropertiesメンバー

- OracleXmlSavePropertiesコンストラクタ

- OracleXmlSavePropertiesプロパティ

- OracleXmlSavePropertiesパブリック・メソッド