OracleXmlQueryPropertiesクラス
OracleXmlQueryProperties
オブジェクトは、XmlCommandType
プロパティがQuery
である場合に、OracleCommand
クラスにより使用されるXMLプロパティを表します。
クラスの継承
System.Object
System.OracleXmlQueryProperties
宣言
public sealed class OracleXmlQueryProperties : ICloneable
要件
プロバイダ | ODP.NET管理対象外ドライバ | ODP.NET管理対象ドライバ | ODP.NET Core |
---|---|---|---|
アセンブリ |
|
|
|
ネームスペース |
|
|
|
.NET Framework |
3.5, 4.5, 4.6, 4.7, 4.8 |
4.5, 4.6, 4.7, 4.8 |
4.6.1以降 |
.NET Core |
- |
- |
2.1以降 |
スレッド安全性
パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。
備考
OracleXmlQueryProperties
は、OracleCommand
クラスのXmlQueryProperties
プロパティを使用してアクセスおよび変更できます。各OracleCommand
オブジェクトには、XmlQueryProperties
プロパティに、OracleXmlQueryProperties
クラスの独自のインスタンスが含まれます。
OracleXmlQueryProperties
の新規インスタンスを取得するには、デフォルトのコンストラクタを使用します。OracleXmlQueryProperties
.Clone()
メソッドを使用して、OracleXmlQueryProperties
インスタンスのコピーを取得します。
例
この例では、リレーショナル・データがXMLで取得されます。
// C# using System; using System.IO; using System.Data; using System.Xml; using System.Text; using Oracle.DataAccess.Client; class OracleXmlQueryPropertiesSample { static void Main() { int rows = 0; StreamReader sr = null; // Define the XSL document for doing the transform. string xslstr = "<?xml version='1.0'?>\n" + "<xsl:stylesheet version=\"1.0\"" + " xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">\n" + " <xsl:output encoding=\"utf-8\"/>\n" + " <xsl:template match=\"/\">\n" + " <EMPLOYEES>\n" + " <xsl:apply-templates select=\"ROWSET\"/>\n" + " </EMPLOYEES>\n" + " </xsl:template>\n" + " <xsl:template match=\"ROWSET\">\n" + " <xsl:apply-templates select=\"ROW\"/>\n" + " </xsl:template>\n" + " <xsl:template match=\"ROW\">\n" + " <EMPLOYEE>\n" + " <EMPLOYEE_ID>\n" + " <xsl:apply-templates select=\"EMPNO\"/>\n" + " </EMPLOYEE_ID>\n" + " <EMPLOYEE_NAME>\n" + " <xsl:apply-templates select=\"ENAME\"/>\n" + " </EMPLOYEE_NAME>\n" + " <HIRE_DATE>\n" + " <xsl:apply-templates select=\"HIREDATE\"/>\n" + " </HIRE_DATE>\n" + " <JOB_TITLE>\n" + " <xsl:apply-templates select=\"JOB\"/>\n" + " </JOB_TITLE>\n" + " </EMPLOYEE>\n" + " </xsl:template>\n" + "</xsl:stylesheet>\n"; // Create the connection. string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); // Set the date, and timestamp formats for Oracle 9i Release 2, or later. // This is just needed for queries. if (!con.ServerVersion.StartsWith("9.0") && !con.ServerVersion.StartsWith("8.1")) { OracleGlobalization sessionParams = con.GetSessionInfo(); sessionParams.DateFormat = "YYYY-MM-DD\"T\"HH24:MI:SS"; sessionParams.TimeStampFormat = "YYYY-MM-DD\"T\"HH24:MI:SS.FF3"; sessionParams.TimeStampTZFormat = "YYYY-MM-DD\"T\"HH24:MI:SS.FF3"; con.SetSessionInfo(sessionParams); } // Create the command. OracleCommand cmd = new OracleCommand("", con); // Set the XML command type to query. cmd.XmlCommandType = OracleXmlCommandType.Query; // Set the SQL query. cmd.CommandText = "select * from emp e where e.empno = :empno"; // Set command properties that affect XML query behaviour. cmd.BindByName = true; // Bind values to the parameters in the SQL query. Int32 empNum = 7369; cmd.Parameters.Add("empno", OracleDbType.Int32, empNum, ParameterDirection.Input); // Set the XML query properties. cmd.XmlQueryProperties.MaxRows = 1; cmd.XmlQueryProperties.RootTag = "ROWSET"; cmd.XmlQueryProperties.RowTag = "ROW"; cmd.XmlQueryProperties.Xslt = xslstr; // Test query execution without returning a result. Console.WriteLine("SQL query: select * from emp e where e.empno = 7369"); Console.WriteLine("Maximum rows: all rows (-1)"); Console.WriteLine("Return Value from OracleCommand.ExecuteNonQuery():"); rows = cmd.ExecuteNonQuery(); Console.WriteLine(rows); Console.WriteLine("\n"); // Get the XML document as an XmlReader. Console.WriteLine("SQL query: select * from emp e where e.empno = 7369"); Console.WriteLine("Maximum rows: all rows (-1)"); Console.WriteLine("XML Document from OracleCommand.ExecuteXmlReader():"); XmlReader xmlReader = cmd.ExecuteXmlReader(); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.PreserveWhitespace = true; xmlDocument.Load(xmlReader); Console.WriteLine(xmlDocument.OuterXml); Console.WriteLine("\n"); // Change the SQL query, and set the maximum number of rows to 2. cmd.CommandText = "select * from emp e"; cmd.Parameters.Clear(); cmd.XmlQueryProperties.MaxRows = 2; // Get the XML document as a Stream. Console.WriteLine("SQL query: select * from emp e"); Console.WriteLine("Maximum rows: 2"); Console.WriteLine("XML Document from OracleCommand.ExecuteStream():"); Stream stream = cmd.ExecuteStream(); sr = new StreamReader(stream, Encoding.Unicode); Console.WriteLine(sr.ReadToEnd()); Console.WriteLine("\n"); // Get all the rows. cmd.XmlQueryProperties.MaxRows = -1; // Append the XML document to an existing Stream. Console.WriteLine("SQL query: select * from emp e"); Console.WriteLine("Maximum rows: all rows (-1)"); Console.WriteLine("XML Document from OracleCommand.ExecuteToStream():"); MemoryStream mstream = new MemoryStream(32); cmd.ExecuteToStream(mstream); mstream.Seek(0, SeekOrigin.Begin); sr = new StreamReader(mstream, Encoding.Unicode); Console.WriteLine(sr.ReadToEnd()); Console.WriteLine("\n"); // Clean up. cmd.Dispose(); con.Close(); con.Dispose(); } }