| Oracle® Data Provider for .NET開発者ガイド リリース9.2.0.4 部品番号 B13807-01 |
|
Oracle.DataAccess.Clientネームスペース、2/30
OracleCommandオブジェクトは、SQLコマンド、ストアド・プロシージャまたは表名を表します。OracleCommandオブジェクトは、要求を公式化し、それをデータベースに渡します。結果が返されると、OracleCommandは結果をOracleDataReader、.NETのXmlReader、.NETのStream、スカラー値または出力パラメータとして返します。
Object
MarshalByRefObject
Component
OracleCommand
// C# public sealed class OracleCommand : Component, IDbCommand, ICloneable
インスタンス・メソッドではスレッド・セーフティを保証しませんが、すべてのpublic staticメソッドはスレッド・セーフです。
現行のローカル・トランザクションが存在する場合、そのトランザクションを表すOracleTransactionオブジェクトの状態には実行内容が反映されないので、トランザクション関連の文をOracleCommandから実行することはお薦めしません。
ExecuteXmlReader、ExecuteStreamおよびExecuteToStreamの各メソッドは、XMLの操作についてのみサポートされています。
ExecuteReaderメソッドおよびExecuteScalarメソッドは、XMLの操作についてはサポートされていません。
// C# ... string conStr = "User Id=scott;Password=tiger;Data Source=oracle"; // Create the OracleConnection OracleConnection con = new OracleConnection(conStr); con.Open(); string cmdQuery = "select ename, empno from emp"; // Create the OracleCommand OracleCommand cmd = new OracleCommand(cmdQuery); cmd.Connection = con; cmd.CommandType = CommandType.Text; // Execute command, create OracleDataReader object OracleDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { // output Employee Name and Number Console.WriteLine("Employee Name : " + reader.GetString(0) + " , " + "Employee Number : " + reader.GetDecimal(1)); } // Dispose OracleDataReader object reader.Dispose(); // Dispose OracleCommand object cmd.Dispose(); // Close and Dispose OracleConnection object con.Close(); con.Dispose(); ...
ネームスペース: Oracle.DataAccess.Client
アセンブリ: Oracle.DataAccess.dll
OracleCommandのメンバーを次の表に示します。
OracleCommandのコンストラクタを表4-1に示します。
| コンストラクタ | 説明 |
|---|---|
|
|
OracleCommandのstaticメソッドを表4-2に示します。
| メソッド | 説明 |
|---|---|
|
|
|
OracleCommandのプロパティを表4-3に示します。
OracleCommandのpublicメソッドを表4-4に示します。
OracleCommandのコンストラクタは、OracleCommandクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、OracleCommandクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたSQLコマンドまたはストアド・プロシージャ、およびOracleデータベースへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたSQLコマンドまたはストアド・プロシージャ、およびOracleデータベースへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、OracleCommandクラスの新規インスタンスをインスタンス化します。
// C# public OracleCommand();
デフォルトのコンストラクタです。
このコンストラクタは、指定されたSQLコマンドまたはストアド・プロシージャ、およびOracleデータベースへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。
// C# public OracleCommand(string cmdText);
このコンストラクタは、指定されたSQLコマンドまたはストアド・プロシージャ、およびOracleデータベースへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。
// C# public OracleCommand(string cmdText, OracleConnection OracleConnection);
OracleCommandのstaticメソッドを表4-5に示します。
| メソッド | 説明 |
|---|---|
|
|
|
OracleCommandのプロパティを表4-6に示します。
このプロパティは、選択リストの一部としてROWIDを追加します。
// C# public bool AddRowid {get; set;}
bool
デフォルトはfalseです。
このROWID列は非表示列で、アプリケーションからはアクセスできません。表のROWIDにアクセスできるようにするには、このプロパティを使用せずにROWIDを選択リストに明示的に追加する必要があります。
| 関連項目:
|
このプロパティは、配列バインド機能を使用するかどうか、およびOracleParameterのValueプロパティでバインドされる配列要素の数を指定します。
// C# public int ArrayBindCount {get; set;}
OracleParameterのValueプロパティでバインドされる配列要素の数を指定するint値
ArgumentException: 指定されたArrayBindCount値が無効です。
デフォルトは0です。
ArrayBindCountが0の場合、配列バインドは使用されません。それ以外の場合は、配列バインドが使用され、OracleParameterのValueプロパティが値の配列として解釈されます。配列バインド機能を使用するには、ArrayBindCountの値を指定する必要があります。
DbTypeとOracleDbTypeのどちらも設定されていない場合、ValueからDbTypeおよびOracleDbTypeが正しく推論されるように、OracleParameterのValueプロパティを設定する前に、ArrayBindCountを必ず設定してください。
デフォルトでは、配列バインドは使用されません。
XmlCommandTypeプロパティがNone以外の値に設定されている場合、このプロパティは無視されます。
このプロパティは、コレクションのバインド・メソッドを指定します。
// C# public bool BindByName {get; set;}
パラメータが名前によってバインドされる場合はtrueを返し、位置によってバインドされる場合はfalseを返します。
デフォルトはfalseです。
BindByNameは、OracleCommand.CommandTypeがCommandType.StoredProcedureではなく、OracleCommand.CommandTypeがCommandType.Textの場合にのみサポートされます。
BindByNameは、次の条件では無視されます。
XmlCommandTypeプロパティの値が、Insert、UpdateまたはDeleteである。
XmlCommandTypeプロパティの値がQueryであるが、OracleCommandにパラメータが設定されていない。
XmlCommandTypeプロパティがOracleXmlCommandType.Queryで、OracleCommandにパラメータが設定されている場合、BindByNameプロパティはtrueに設定する必要があります。それ以外の場合は、次のOracleCommandメソッドによりInvalidOperationExceptionがスローされます。
このプロパティは、Oracleデータベース、またはOracleデータベースに対する変更を格納するために使用されるXMLデータに対して実行するSQL文またはストアド・プロシージャを指定します。
// C# public string CommandText {get; set;}
string
IDbCommand
デフォルトは空の文字列です。
CommandTypeプロパティがStoredProcedureに設定されている場合、CommandTextプロパティはストアド・プロシージャの名前に設定されます。Executeメソッドがコールされると、コマンドはこのストアド・プロシージャをコールします。
XmlCommandTypeの値のCommandTextに対する影響は、次のとおりです。
XmlCommandTypeがNoneの場合
CommandTypeプロパティは、CommandTextの内容を決定します。
XmlCommandTypeがQueryの場合
CommandTextはSQL問合せです。そのSQL問合せは選択文です。CommandTypeプロパティは無視されます。
XmlCommandTypeプロパティがInsert、UpdateまたはDeleteの場合
CommandTextはXML文書です。CommandTypeプロパティは無視されます。
このプロパティは、CommandTextプロパティの解釈方法を示すコマンド・タイプを指定します。
// C# public System.Data.CommandType CommandType {final get; final set;}
CommandType
ArgumentException: 値が、CommandType.Text、CommandType.StoredProcedureまたはCommandType.TableDirectなどの有効なCommandTypeではありません。
デフォルトはCommandType.Textです。
XmlCommandTypeプロパティの値がNoneでない場合、CommandTypeプロパティは無視されます。
このプロパティは、コマンドを実行するために接続の識別に使用されるOracleConnectionオブジェクトを指定します。
// C# public OracleConnection Connection {get; set;}
OracleConnectionオブジェクト
IDbCommand
デフォルトはnullです。
このプロパティは、結果セットのデータを格納するOracleDataReaderの内部キャッシュのサイズを指定します。
// C# public long FetchSize {get; set;}
OracleDataReaderの内部キャッシュのサイズをバイト単位で指定するlong
ArgumentException: 指定されたFetchSize値が無効です。
デフォルトは65536です。
FetchSizeプロパティは、結果セットを返すコマンド実行によって作成されるOracleDataReaderに継承されます。OracleDataReaderオブジェクトのFetchSizeプロパティにより、1回のサーバー・ラウンドトリップでOracleDataReaderが内部キャッシュにフェッチするデータ・サイズが決定されます。
XmlCommandTypeプロパティがNone以外の値に設定されている場合、このプロパティは無視されます。
| 関連項目:
|
このプロパティは、LOB列について、OracleDataReaderが最初にフェッチするサイズを指定します。
// C# public int InitialLOBFetchSize {get; set;}
サイズを指定するint
ArgumentException: 指定されたInitialLOBFetchSize値が無効です。
InitialLOBFetchSizeで設定できる最大値は32767です。このプロパティをこれより大きい値に設定すると、プロバイダにより32767にリセットされます。
デフォルトは0です。
InitialLOBFetchSizeの値は、OracleDataReaderによってすぐにフェッチされるLOBデータの最初のサイズを指定します。プロパティ値は、CLOBデータおよびNCLOBデータの文字数と、BLOBデータのバイト数を指定します。指定されたInitialLOBFetchSizeより多くのデータをフェッチするには、次のいずれかを選択リストに含める必要があります。
InitialLOBFetchSize値は、LOB列が選択リストにある場合に、フェッチするLOB列データの長さを決定するために使用されます。選択リストにLOB列が含まれていない場合、InitialLOBFetchSize値は無視されます。
このプロパティが0に設定されている場合、主キー、ROWIDまたは一意の列は不要です。
InitialLOBFetchSizeが0以外の値に設定されている場合、GetOracleBlob()メソッドおよびGetOracleClob()メソッドは無効です。BLOBデータとCLOBデータは、それぞれGetBytes()とGetChars()を使用してフェッチされます。
このプロパティは、LONG列およびLONG RAW列について、OracleDataReaderが最初にフェッチするサイズを指定します。
// C# public int InitialLONGFetchSize {get; set;}
サイズを指定するint
ArgumentException: 指定されたInitialLONGFetchSize値が無効です。
InitialLONGFetchSizeで設定できる最大値は32767です。このプロパティをこれより大きい値に設定すると、プロバイダにより32767にリセットされます。
InitialLONGFetchSizeの値は、OracleDataReaderによってすぐにフェッチされるLONGデータまたはLONG RAWデータの最初のサイズを指定します。プロパティ値は、LONGデータの文字数と、LONG RAWデータのバイト数を指定します。指定されたInitialLONGFetchSizeより多くのデータをフェッチするには、次のいずれかを選択リストに含める必要があります。
InitialLONGFetchSizeの値は、LONGおよびLONG RAW列データのいずれかが選択リストにある場合に、フェッチするこれらのデータの長さの決定に使用されます。選択リストにLONG列またはLONG RAW列が含まれていない場合、InitialLONGFetchSize値は無視されます。
デフォルトは0です。
このプロパティを0に設定すると、アプリケーションが明確に要求するまで、LONGデータおよびLONG RAWデータはまったく取得されません。
このプロパティは、SQL文またはストアド・プロシージャのパラメータを指定します。
// C# public OracleParameterCollection Parameters {get;}
OracleParameterCollection
IDbCommand
デフォルト値は空のコレクションです。
コレクション内のパラメータの数は、コマンド・テキスト内のパラメータ・プレースホルダの数と同じである必要があります。数が異なると、エラーが発生します。
コマンド・テキストにパラメータ・トークン(:1、:2など)がまったく含まれていない場合、Parametersプロパティ内の値は無視されます。
このプロパティは、データを1行格納するためにOracleDataReaderの内部キャッシュに必要なメモリー・サイズを指定します。
// C# public long RowSize {get;}
実行される問合せに対するデータを1行格納するために、OracleDataReaderが必要とするメモリー・サイズをバイト単位で示すlong
デフォルト値は0です。
RowSizeプロパティは、結果セットを返すコマンドが実行されると、0以外の値に設定されます。このプロパティは、行数に基づいてFetchSizeを設定するため、設計時、または実行時に動的に使用できます。たとえば、OracleDataReaderがサーバー・ラウンドトリップごとにN行をフェッチできるようにするには、OracleDataReaderのFetchSizeプロパティを動的にRowSize * Nに設定できます。FetchSizeが適切に機能するようにするには、OracleCommand.ExecuteReader()の後で、OracleDataReader.Read()の前に設定する必要があります。
| 関連項目:
|
このプロパティは、OracleCommandを実行するOracleTransactionオブジェクトを指定します。
// C# public OracleTransaction Transaction {get;}
OracleTransaction
IDbCommand
デフォルト値はnullです。
Transactionは、OracleCommand接続オブジェクトと関連付けられたトランザクション・オブジェクトへの参照を返します。したがって、その接続が現在置かれているトランザクション・コンテキストで、コマンドが実行されます。
このプロパティは、問合せコマンドの結果を更新中の行に適用する方法を指定します。
// C# public System.Data.UpdateRowSource UpdatedRowSource {final get; final set;}
UpdateRowSource
IDbCommand
ArgumentException: 指定されたUpdateRowSource値が無効です。
コマンドが自動的に生成された場合、デフォルトはUpdateRowSource.Noneです。コマンドが自動的に生成されない場合、デフォルトはUpdateRowSource.Bothです。
このプロパティは、OracleCommandに対するXML操作のタイプを指定します。
// C# public OracleXmlCommandType XmlCommandType {get; set;}
OracleXmlCommandType
デフォルト値はNoneです。
XmlCommandTypeの値および使用方法は次のとおりです。
None: CommandTypeプロパティは、操作のタイプを指定します。
Query: CommandTextプロパティは、SQL選択文に設定する必要があります。問合せが実行され、結果がXML文書として返されます。CommandText内のSQL選択文、およびXmlQueryPropertiesプロパティによって指定されるプロパティは、操作を実行するために使用されます。CommandTypeプロパティは無視されます。
Insert、UpdateまたはDelete: CommandTextプロパティは、加えられる変更を含むXML文書です。CommandText内のXML文書およびXmlSavePropertiesプロパティによって指定されたプロパティは、操作を実行するために使用されます。CommandTypeプロパティは無視されます。
このプロパティは、SQL問合せ文の結果セットからXML文書が作成される際に使用するプロパティを指定します。
// C# public OracleXmlQueryProperties XmlQueryProperties {get; set;}
OracleXmlQueryProperties
OracleCommandの新規インスタンスが作成されると、OracleXmlQueryPropertiesインスタンスがOracleCommand.XmlQueryPropertiesプロパティによりOracleCommandインスタンスで自動的に使用可能になります。
OracleXmlQueryPropertiesの新規インスタンスは、OracleCommandインスタンスに割り当てることができます。OracleXmlQueryPropertiesインスタンスをOracleCommandインスタンスのXmlQueryPropertiesに割り当てると、OracleCommandに対して指定したOracleXmlQueryPropertiesインスタンスの新規インスタンスが作成されます。このように各OracleCommandインスタンスは、それぞれのOracleXmlQueryPropertiesインスタンスを持ちます。
デフォルトのコンストラクタを使用して、OracleXmlQueryPropertiesの新規インスタンスを取得します。
OracleXmlQueryProperties.Clone()メソッドを使用して、OracleXmlQueryPropertiesインスタンスのコピーを取得します。
このプロパティは、データベースに対する変更を保存するためにXML文書が使用される際に使用するプロパティを指定します。
// C# public OracleXmlSaveProperties XmlSaveProperties {get; set;}
OracleXmlSaveProperties
OracleCommandの新規インスタンスが作成されると、OracleXmlSavePropertiesインスタンスがOracleCommand.XmlSavePropertiesプロパティによりOracleCommandインスタンスで自動的に使用可能になります。
OracleXmlSavePropertiesの新規インスタンスは、OracleCommandインスタンスに割り当てることができます。OracleXmlSavePropertiesインスタンスをOracleCommandインスタンスのXmlSavePropertiesに割り当てると、OracleCommandに対して指定したOracleXmlSavePropertiesインスタンスの新規インスタンスが作成されます。このように各OracleCommandインスタンスは、それぞれのOracleXmlSavePropertiesインスタンスを持ちます。
デフォルトのコンストラクタを使用して、OracleXmlSavePropertiesの新規インスタンスを取得します。
OracleXmlSaveProperties.Clone()メソッドを使用して、OracleXmlSavePropertiesインスタンスのコピーを取得します。
OracleCommandのpublicメソッドを表4-7に示します。
このメソッドは、OracleCommandオブジェクトのコピーを作成します。
// C# public object Clone();
OracleCommandオブジェクト
ICloneable
クローニングされたオブジェクトは、クローニング元のオブジェクトと同じプロパティ値を持ちます。
// C# ... //Need a proper casting for the return value when cloned OracleCommand cmd_cloned = (OracleCommand) cmd.Clone(); ...
このメソッドは、OracleParameterクラスの新規インスタンスを作成します。
// C# public OracleParameter CreateParameter();
デフォルト値を持つ新規のOracleParameter
IDbCommand
このメソッドは、XmlCommandTypeプロパティおよびCommandTextプロパティを使用してSQL文またはコマンドを実行し、影響を受けた行数を返します。
// C# public int ExecuteNonQuery();
影響を受けた行数
IDbCommand
InvalidOperationException: コマンドを実行できません。
ExecuteNonQueryは、次の場合に影響を受けた行数を返します。
UPDATE、INSERTまたはDELETEで、XmlCommandTypeプロパティがOracleXmlCommandType.Noneに設定されている場合
XmlCommandTypeプロパティがOracleXmlCommandType.Insert、OracleXmlCommandType.Update、OracleXmlCommandType.Deleteに設定されている場合
その他のすべてのタイプの文の場合は、-1を返します。
ExecuteNonQueryは、次のいずれかの場合に使用されます。
DataSetを使用せず、UPDATE文、INSERT文またはDELETE文を実行してデータベース内のデータを変更
ExecuteNonQueryは行を返しませんが、出力パラメータまたはパラメータにマップされた戻り値にデータを移入します。
XmlCommandTypeプロパティがOracleXmlCommandType.Queryに設定されている場合、ExecuteNonQueryによりCommandTextプロパティ内の選択文が実行され、成功すると-1を返します。生成されたXML文書が破棄されます。これは、結果としてXML文書が返されることなく、操作が正常に完了したかどうかを判断する場合に便利です。
XmlCommandTypeプロパティがOracleXmlCommandType.Insert、OracleXmlCommandType.UpdateまたはOracleXmlCommandType.Deleteに設定されている場合、CommandTextプロパティの値はXML文書です。ExecuteNonQueryは、そのXML文書内の変更をXmlSavePropertiesプロパティで指定されている表またはビューに保存します。戻り値は、XML文書で処理される行数です。また、XML文書の各行は、データベース内の複数の行に影響を与える可能性がありますが、その場合も戻り値はXML文書内の行数です。
// C# ... OracleConnection con = new OracleConnection("User Id=scott;Password=tiger;"+ "Data Source=oracle"); OracleCommand cmd = new OracleCommand("update emp set sal = 3000" + "where empno=7934", con); cmd.Connection.Open(); cmd.ExecuteNonQuery(); cmd.Dispose(); ...
XMLをサポートする場合、このメソッドはOracle9i XML Developer's Kits(Oracle XDK)以上がデータベースにインストールされている必要があります。Oracle XDKは、Oracle Technology Network Japan(OTN-J)からダウンロードできます。
ExecuteReaderは、CommandTextで指定されたコマンドを実行します。
このメソッドは、CommandTextで指定されたコマンドを実行し、OracleDataReaderオブジェクトを返します。
このメソッドは、指定されたCommandBehavior値を使用して、CommandTextで指定されたコマンドを実行し、OracleDataReaderオブジェクトを返します。
このメソッドは、CommandTextで指定されたコマンドを実行し、OracleDataReaderオブジェクトを返します。
// C# public OracleDataReader ExecuteReader();
OracleDataReader
IDbCommand
InvalidOperationException: コマンドを実行できません。
CommandTypeプロパティがCommandType.StoredProcedureに設定されている場合、CommandTextプロパティはストアド・プロシージャの名前に設定されます。
ExecuteReader()をコールすると、このストアド・プロシージャが実行されます。ストアド・プロシージャのパラメータがREF CURSORから構成される場合、ExecuteReader()またはExecuteNonQuery()のどちらがコールされたかによって動作が異なります。
FetchSizeには、100という値が使用されます。0が指定された場合は、行はフェッチされません。詳細は、「LONGおよびLONG RAWデータの取得」を参照してください。
XmlCommandTypeプロパティの値がOracleXmlCommandType.Insert、OracleXmlCommandType.Update、OracleXmlCommandType.DeleteまたはOracleXmlCommandType.Queryに設定されている場合、ExecuteReaderメソッドによりInvalidOperationExceptionがスローされます。
// C# ... OracleConnection con = new OracleConnection("User Id=scott;Password=tiger;" + "Data Source=oracle"); OracleCommand cmd = new OracleCommand("select ename from emp", con); cmd.Connection.Open(); OracleDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Console.WriteLine("Employee Name : " + reader.GetString(0)); } reader.Dispose(); cmd.Dispose(); ...
このメソッドは、指定された動作を使用して、CommandTextで指定されたコマンドを実行し、OracleDataReaderオブジェクトを返します。
// C# public OracleDataReader ExecuteReader(CommandBehavior behavior);
OracleDataReader
IDbCommand
InvalidOperationException: コマンドを実行できません。
問合せコマンドの結果およびデータベースへの影響については、コマンドの動作を指定するbehaviorによって示されます。
有効なCommandBehaviorの値および各CommandBehavior列挙型の要求する動作の詳細は、.NET Frameworkのドキュメントを参照してください。
CommandTypeプロパティがCommandType.StoredProcedureに設定されている場合、CommandTextプロパティはストアド・プロシージャの名前に設定されます。ExecuteReader()がコールされると、このストアド・プロシージャが実行されます。
ストアド・プロシージャが格納されているREF CURSORを返す場合、詳細はOracleRefCursorの項を参照してください。「OracleRefCursorクラス」を参照してください。
FetchSizeには、100という値が使用されます。0が指定された場合は、行はフェッチされません。詳細は、「LONGおよびLONG RAWデータの取得」を参照してください。
XmlCommandTypeプロパティの値がOracleXmlCommandType.Insert、OracleXmlCommandType.Update、OracleXmlCommandType.DeleteまたはOracleXmlCommandType.Queryに設定されている場合、ExecuteReaderメソッドによりInvalidOperationExceptionがスローされます。
このメソッドは、接続を使用して問合せを実行し、問合せにより返された結果セットの最初の行の最初の列を返します。
// C# public object ExecuteScalar();
最初の行の最初の列の値を表すオブジェクト
IDbCommand
InvalidOperationException: コマンドを実行できません。
残りの列または行は無視されます。ExecuteScalarは、データベースから1つの値(集計値など)を取得します。ExecuteReader()メソッドを使用し、OracleDataReaderによって返されたデータから1つの値を生成するよりも、このメソッドを使用した方がコードが簡潔になります。
問合せが行をまったく返さない場合は、nullが返されます。
XmlCommandTypeプロパティが、Insert、Update、Delete、QueryのいずれかのOracleXmlCommandType値に設定されている場合、ExecuteScalarメソッドによりInvalidOperationExceptionがスローされます。
// C# ... CmdObj.CommandText = "select count(*) from emp"; decimal count = (decimal) CmdObj.ExecuteScalar(); ...
このメソッドは、XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として新規のStreamオブジェクトで返します。
// C# public Stream ExecuteStream();
Stream
ExecuteStreamの動作は、XmlCommandTypeプロパティの値に応じて異なります。
XmlCommandTypeがOracleXmlCommandType.Noneの場合
ExecuteStreamによりInvalidOperationExceptionがスローされます。
XmlCommandTypeがOracleXmlCommandType.Queryの場合
ExecuteStreamは、CommandTextプロパティ内の選択文を実行し、成功すると、生成されたXML文書を含むOracleClobオブジェクトを返します。OracleClobにはUnicode文字が含まれます。
SQL問合せが行をまったく返さない場合は、ExcecuteStreamが空のXML文書を含むOracleClobオブジェクトを返します。
XmlCommandTypeがOracleXmlCommandType.Insert、OracleXmlCommandType.UpdateまたはOracleXmlCommandType.Deleteの場合
CommandTextプロパティの値はXML文書です。ExecuteStreamは、そのXML文書内のデータをXmlSavePropertiesプロパティで指定されている表またはビューに保存し、空のOracleClobが返されます。
このメソッドは、Oracle9i XML Developer's Kits(Oracle XDK)以上がデータベースにインストールされている必要があります。Oracle XDKは、Oracle Technology Network Japan(OTN-J)からダウンロードできます。
| 関連項目:
|
このメソッドは、XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書としてアプリケーションで提供されている既存のStreamに追加します。
// C# public void ExecuteToStream(Stream outputStream);
ExecuteToStreamの動作は、XmlCommandTypeプロパティの値に応じて異なります。
XmlCommandTypeがOracleXmlCommandType.Noneの場合
ExecuteToStreamによりInvalidOperationExceptionがスローされます。
XmlCommandTypeがOracleXmlCommandType.Queryの場合
ExecuteToStreamがCommandTextプロパティ内の選択文を実行し、成功すると、指定したStreamに生成されたXML文書を追加します。
SQL問合せが行をまったく返さない場合は、指定のStreamには何も追加されません。追加されたデータのキャラクタ・セットはUnicodeです。
XmlCommandTypeがOracleXmlCommandType.Insert、OracleXmlCommandType.UpdateまたはOracleXmlCommandType.Deleteの場合
CommandTextプロパティの値はXML文書です。ExecuteToStreamは、そのXML文書内の変更をXmlSavePropertiesプロパティで指定されている表またはビューに保存します。指定のStreamには何も追加されません。
このメソッドは、Oracle9i XML Developer's Kits(Oracle XDK)以上がデータベースにインストールされている必要があります。Oracle XDKは、Oracle Technology Network Japan(OTN-J)からダウンロードできます。
| 関連項目:
|
このメソッドは、XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として.NETのXmlTextReaderオブジェクトで返します。
// C# public XmlReader ExecuteXmlReader();
XmlReader
ExecuteXmlReaderの動作は、XmlCommandTypeプロパティの値に応じて異なります。
XmlCommandTypeがOracleXmlCommandType.Noneの場合
ExecuteStreamによりInvalidOperationExceptionがスローされます。
XmlCommandTypeがOracleXmlCommandType.Queryの場合
ExecuteXmlReaderは、CommandTextプロパティ内の選択文を実行し、成功すると、生成されたXML文書を含むXmlTextReaderオブジェクトを返します。
SQL問合せがまったく行を返さない場合に起こりうるXML文書が空の場合、空の.NET XmlTextReaderオブジェクトが返されます。
XmlCommandTypeがOracleXmlCommandType.Insert、OracleXmlCommandType.UpdateまたはOracleXmlCommandType.Deleteの場合
CommandTextプロパティの値はXML文書で、ExecuteXmlReaderは、そのXML文書内の変更をXmlSavePropertiesプロパティで指定された表またはビューに保存します。空の.NET XmlTextReaderオブジェクトが返されます。
このメソッドは、Oracle9i XML Developer's Kits(Oracle XDK)以上がデータベースにインストールされている必要があります。これはOracle Technology Network Japan(OTN-J)からダウンロードできます。
| 関連項目:
|
|
|
![]() Copyright © 2002, 2003 Oracle Corporation. All Rights Reserved. |
|