OracleXmlSavePropertiesオブジェクトは、XmlCommandTypeプロパティがInsert、Updateまたは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コンストラクタを、表7-7にリストします。
OracleXmlSavePropertiesプロパティ
OracleXmlSavePropertiesプロパティを、表7-8にリストします。
表7-8 OracleXmlSavePropertiesプロパティ
| 名前 | 説明 |
|---|---|
|
XMLドキュメントを使用して更新または削除する既存の行を検出するキーとして使用される列のリストを指定します。 |
|
|
XMLドキュメント内のデータの行を識別するXML要素の値を指定します。 |
|
|
変更を保存する表またはビューの名前を指定します。 |
|
|
更新または挿入する列のリストを指定します。 |
|
|
XSLTを使用したXML変換に使用するXSLドキュメントを指定します。 |
|
|
Xsltプロパティ内で指定されるXSLTドキュメントのパラメータを指定します。 |
OracleXmlSavePropertiesパブリック・メソッド
OracleXmlSavePropertiesパブリック・メソッドを、表7-9にリストします。
OracleXmlSavePropertiesコンストラクタでは、OracleXmlSavePropertiesクラスの新規インスタンスをインスタンス化します。
宣言
// C# public OracleXmlSaveProperties;
OracleXmlSavePropertiesプロパティを、表7-10にリストします。
表7-10 OracleXmlSavePropertiesプロパティ
| 名前 | 説明 |
|---|---|
|
XMLドキュメントを使用して更新または削除する既存の行を検出するキーとして使用される列のリストを指定します。 |
|
|
XMLドキュメント内のデータの行を識別するXML要素の値を指定します。 |
|
|
変更を保存する表またはビューの名前を指定します。 |
|
|
更新または挿入する列のリストを指定します。 |
|
|
XSLTを使用したXML変換に使用するXSLドキュメントを指定します。 |
|
|
Xsltプロパティ内で指定されるXSLTドキュメントのパラメータを指定します。 |
このプロパティは、XMLドキュメントを使用して更新または削除する既存の行を検出するためのキーとして使用される列のリストを指定します。
宣言
// C#
public string[] KeyColumnsList {get; set;}
プロパティ値
列のリスト。
備考
デフォルト値はNULLです。
最初のNULL値(ある場合)はリストを停止します。
XMLCommandTypeプロパティ値を持つKeyColumnsListの使用方法
Insert - KeyColumnsListは無視され、NULLになります。
Update - KeyColumnsListを指定する必要があります。これは更新する行を検索するために使用する列を識別します。
Delete - KeyColumnsListがNULLの場合、XMLドキュメント内の各行要素の列値すべてを使用して、削除する行を検出します。それ以外の場合、KeyColumnsListは削除する行を識別するために使用する列を指定します。
このプロパティでは、XMLドキュメント内のデータの行を識別するXML要素の値を指定します。
宣言
// C#
public string RowTag {get; set;}
プロパティ値
XML要素名。
備考
デフォルト値はROWです。
XMLドキュメント内の各要素は、表またはビュー内の行を識別します。
RowTagが""またはnullに設定されている場合、XMLドキュメント内に行タグは使用されません。この場合、XMLドキュメントに含まれるのは1行のみと仮定されます。
このプロパティでは変更を保存する表またはビューの名前を指定します。
宣言
// C#
public string Table {get; set;}
プロパティ値
表の名前。
備考
デフォルト値はNULLです。
このプロパティには、有効な表またはビュー名を設定する必要があります。
このプロパティでは更新または挿入する列のリストを指定します。
宣言
// 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を使用するXML変換に使用するXSLドキュメントを指定します。
宣言
// C#
public string Xslt {get; set;}
プロパティ値
XML変換に使用するXSLドキュメント。
備考
デフォルト = null
所定のXMLドキュメントのXSLT変換にはXSLドキュメントを使用します。変換したXMLドキュメントを使用して、表またはビューに加えられた変更を保存します。
OracleXmlSavePropertiesパブリック・メソッドを、表7-11にリストします。