ヘッダーをスキップ

Oracle® Data Provider for .NET開発者ガイド
リリース9.2.0.4

部品番号 B13807-01
Go To Table Of Contents
目次
Go To Index
索引

Go to previous page Go to beginning of chapter Go to next page

Oracle.DataAccess.Clientネームスペース、2/30


OracleCommandクラス

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から実行することはお薦めしません。

ExecuteXmlReaderExecuteStreamおよび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のメンバーを次の表に示します。

OracleCommandのコンストラクタ

OracleCommandのコンストラクタを表4-1に示します。

表4-1 OracleCommandのコンストラクタ
コンストラクタ 説明

OracleCommandのコンストラクタ

OracleCommandクラスの新規インスタンスをインスタンス化します(オーバーロード)。

OracleCommandのstaticメソッド

OracleCommandのstaticメソッドを表4-2に示します。

表4-2 OracleCommandのstaticメソッド
メソッド 説明

Equals

Objectから継承されます(オーバーロード)。

OracleCommandのプロパティ

OracleCommandのプロパティを表4-3に示します。

表4-3 OracleCommandのプロパティ 
名前 説明

AddRowid

選択リストの一部としてROWIDを追加します。

ArrayBindCount

配列バインド機能を使用するかどうか、およびValueプロパティでバインドされる配列要素の最大数を指定します。

BindByName

コレクションのバインド・メソッドを指定します。

CommandText

Oracleデータベース、またはOracleデータベースに対する変更を格納するために使用されるXMLデータに対して実行するSQL文またはストアド・プロシージャを指定します。

CommandTimeout

サポートされていません。

CommandType

CommandTextプロパティの解釈方法を示すコマンド・タイプを指定します。

Connection

コマンドを実行するために接続の識別に使用するOracleConnectionオブジェクトを指定します。

Container

Componentから継承されます。

FetchSize

結果セットのデータを格納するOracleDataReaderの内部キャッシュのサイズを指定します。

InitialLOBFetchSize

LOB列について、OracleDataReaderが最初にフェッチするサイズを指定します。

InitialLONGFetchSize

LONG列およびLONG RAW列について、OracleDataReaderが最初にフェッチするサイズを指定します。

Parameters

SQL文またはストアド・プロシージャのパラメータを指定します。

RowSize

データを1行格納するためにOracleDataReaderの内部キャッシュに必要なメモリー・サイズを指定します。

XmlCommandType

OracleCommandに対するXML操作のタイプを指定します。

XmlQueryProperties

SQL問合せ文の結果セットからXML文書が作成される際に使用するプロパティを指定します。

XmlSaveProperties

データベースに対する変更を保存するためにXML文書が使用される際に使用するプロパティを指定します。

OracleCommandのpublicメソッド

OracleCommandのpublicメソッドを表4-4に示します。

表4-4 OracleCommandのpublicメソッド 
publicメソッド 説明

Cancel

サポートされていません。

Clone

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

CreateObjRef

MarshalByRefObjectから継承されます。

CreateParameter

OracleParameterクラスの新規インスタンスを作成します。

Dispose

Componentから継承されます。

Equals

Objectから継承されます(オーバーロード)。

ExecuteNonQuery

XmlCommandTypeプロパティおよびCommandTextプロパティを使用してSQL文またはコマンドを実行し、影響を受けた行数を返します。

ExecuteReader

コマンドを実行します(オーバーロード)。

ExecuteScalar

問合せにより返された結果セットの最初の行の最初の列を返します。

ExecuteStream

XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果を新規のStreamオブジェクトで返します。

ExecuteToStream

XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として既存のStreamに追加します。

ExecuteXmlReader

XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として.NETのXmlTextReaderオブジェクトで返します。

GetHashCode

Objectから継承されます。

GetLifetimeService

MarshalByRefObjectから継承されます。

GetType

Objectから継承されます。

InitializeLifetimeService

MarshalByRefObjectから継承されます。

Prepare

このメソッドはno-opです。

ToString

Objectから継承されます。

関連項目:

OracleCommandのコンストラクタ

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

オーバーロード一覧:

OracleCommand()

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

宣言
// C#
public OracleCommand();
備考

デフォルトのコンストラクタです。

関連項目:

OracleCommand(string)

このコンストラクタは、指定されたSQLコマンドまたはストアド・プロシージャ、およびOracleデータベースへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleCommand(string cmdText);
パラメータ

OracleCommand(string, OracleConnection)

このコンストラクタは、指定されたSQLコマンドまたはストアド・プロシージャ、およびOracleデータベースへの接続を使用して、OracleCommandクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleCommand(string cmdText, OracleConnection OracleConnection);
パラメータ

OracleCommandのstaticメソッド

OracleCommandのstaticメソッドを表4-5に示します。

表4-5 OracleCommandのstaticメソッド
メソッド 説明

Equals

Objectから継承されます(オーバーロード)。

関連項目:

OracleCommandのプロパティ

OracleCommandのプロパティを表4-6に示します。

表4-6 OracleCommandのプロパティ 
名前 説明

AddRowid

選択リストの一部としてROWIDを追加します。

ArrayBindCount

配列バインド機能を使用するかどうか、およびValueプロパティでバインドされる配列要素の最大数を指定します。

BindByName

コレクションのバインド・メソッドを指定します。

CommandText

Oracleデータベース、またはOracleデータベースに対する変更を格納するために使用されるXMLデータに対して実行するSQL文またはストアド・プロシージャを指定します。

CommandTimeout

サポートされていません。

CommandType

CommandTextプロパティの解釈方法を示すコマンド・タイプを指定します。

Connection

コマンドを実行するために接続の識別に使用するOracleConnectionオブジェクトを指定します。

Container

Componentから継承されます。

FetchSize

結果セットのデータを格納するOracleDataReaderの内部キャッシュのサイズを指定します。

InitialLOBFetchSize

LOB列について、OracleDataReaderが最初にフェッチするサイズを指定します。

InitialLONGFetchSize

LONG列およびLONG RAW列について、OracleDataReaderが最初にフェッチするサイズを指定します。

Parameters

SQL文またはストアド・プロシージャのパラメータを指定します。

RowSize

データを1行格納するためにOracleDataReaderの内部キャッシュに必要なメモリー・サイズを指定します。

Site

Componentから継承されます。

Transaction

OracleCommandを実行するOracleTransactionオブジェクトを指定します。

UpdatedRowSource

問合せコマンドの結果を更新中の行に適用する方法を指定します。

XmlCommandType

OracleCommandに対するXML操作のタイプを指定します。

XmlQueryProperties

SQL問合せ文の結果セットからXML文書が作成される際に使用するプロパティを指定します。

XmlSaveProperties

データベースに対する変更を保存するためにXML文書が使用される際に使用するプロパティを指定します。

関連項目:

AddRowid

このプロパティは、選択リストの一部としてROWIDを追加します。

宣言
// C#
public bool AddRowid {get; set;}
プロパティ値

bool

備考

デフォルトはfalseです。

このROWID列は非表示列で、アプリケーションからはアクセスできません。表のROWIDにアクセスできるようにするには、このプロパティを使用せずにROWIDを選択リストに明示的に追加する必要があります。

関連項目:

ArrayBindCount

このプロパティは、配列バインド機能を使用するかどうか、およびOracleParameterValueプロパティでバインドされる配列要素の数を指定します。

宣言
// C#
public int ArrayBindCount {get; set;}
プロパティ値

OracleParameterValueプロパティでバインドされる配列要素の数を指定するint

例外

ArgumentException: 指定されたArrayBindCount値が無効です。

備考

デフォルトは0です。

ArrayBindCount0の場合、配列バインドは使用されません。それ以外の場合は、配列バインドが使用され、OracleParameterValueプロパティが値の配列として解釈されます。配列バインド機能を使用するには、ArrayBindCountの値を指定する必要があります。

DbTypeOracleDbTypeのどちらも設定されていない場合、ValueからDbTypeおよびOracleDbTypeが正しく推論されるように、OracleParameterValueプロパティを設定する前に、ArrayBindCountを必ず設定してください。

デフォルトでは、配列バインドは使用されません。

XmlCommandTypeプロパティがNone以外の値に設定されている場合、このプロパティは無視されます。

関連項目:

BindByName

このプロパティは、コレクションのバインド・メソッドを指定します。

宣言
// C#
public bool BindByName {get; set;}
プロパティ値

パラメータが名前によってバインドされる場合はtrueを返し、位置によってバインドされる場合はfalseを返します。

備考

デフォルトはfalseです。

BindByNameは、OracleCommand.CommandTypeCommandType.StoredProcedureではなく、OracleCommand.CommandTypeCommandType.Textの場合にのみサポートされます。

BindByNameは、次の条件では無視されます。

XmlCommandTypeプロパティがOracleXmlCommandType.Queryで、OracleCommandにパラメータが設定されている場合、BindByNameプロパティはtrueに設定する必要があります。それ以外の場合は、次のOracleCommandメソッドによりInvalidOperationExceptionがスローされます。

CommandText

このプロパティは、Oracleデータベース、またはOracleデータベースに対する変更を格納するために使用されるXMLデータに対して実行するSQL文またはストアド・プロシージャを指定します。

宣言
// C#
public string CommandText {get; set;}
プロパティ値

string

実装

IDbCommand

備考

デフォルトは空の文字列です。

CommandTypeプロパティがStoredProcedureに設定されている場合、CommandTextプロパティはストアド・プロシージャの名前に設定されます。Executeメソッドがコールされると、コマンドはこのストアド・プロシージャをコールします。

XmlCommandTypeの値のCommandTextに対する影響は、次のとおりです。

CommandType

このプロパティは、CommandTextプロパティの解釈方法を示すコマンド・タイプを指定します。

宣言
// C#
public System.Data.CommandType CommandType {final get; final set;}
プロパティ値

CommandType

例外

ArgumentException: 値が、CommandType.TextCommandType.StoredProcedureまたはCommandType.TableDirectなどの有効なCommandTypeではありません。

備考

デフォルトはCommandType.Textです。

XmlCommandTypeプロパティの値がNoneでない場合、CommandTypeプロパティは無視されます。

関連項目:

Connection

このプロパティは、コマンドを実行するために接続の識別に使用されるOracleConnectionオブジェクトを指定します。

宣言
// C#
public OracleConnection Connection {get; set;}
プロパティ値

OracleConnectionオブジェクト

実装

IDbCommand

備考

デフォルトはnullです。

関連項目:

FetchSize

このプロパティは、結果セットのデータを格納するOracleDataReaderの内部キャッシュのサイズを指定します。

宣言
// C#
public long FetchSize {get; set;}
プロパティ値

OracleDataReaderの内部キャッシュのサイズをバイト単位で指定するlong

例外

ArgumentException: 指定されたFetchSize値が無効です。

備考

デフォルトは65536です。

FetchSizeプロパティは、結果セットを返すコマンド実行によって作成されるOracleDataReaderに継承されます。OracleDataReaderオブジェクトのFetchSizeプロパティにより、1回のサーバー・ラウンドトリップでOracleDataReaderが内部キャッシュにフェッチするデータ・サイズが決定されます。

XmlCommandTypeプロパティがNone以外の値に設定されている場合、このプロパティは無視されます。

関連項目:

InitialLOBFetchSize

このプロパティは、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()を使用してフェッチされます。

関連項目:

InitialLONGFetchSize

このプロパティは、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データはまったく取得されません。

関連項目:

Parameters

このプロパティは、SQL文またはストアド・プロシージャのパラメータを指定します。

宣言
// C#
public OracleParameterCollection Parameters {get;}
プロパティ値

OracleParameterCollection

実装

IDbCommand

備考

デフォルト値は空のコレクションです。

コレクション内のパラメータの数は、コマンド・テキスト内のパラメータ・プレースホルダの数と同じである必要があります。数が異なると、エラーが発生します。

コマンド・テキストにパラメータ・トークン(:1:2など)がまったく含まれていない場合、Parametersプロパティ内の値は無視されます。

関連項目:

RowSize

このプロパティは、データを1行格納するためにOracleDataReaderの内部キャッシュに必要なメモリー・サイズを指定します。

宣言
// C#
public long RowSize {get;}
プロパティ値

実行される問合せに対するデータを1行格納するために、OracleDataReaderが必要とするメモリー・サイズをバイト単位で示すlong

備考

デフォルト値は0です。

RowSizeプロパティは、結果セットを返すコマンドが実行されると、0以外の値に設定されます。このプロパティは、行数に基づいてFetchSizeを設定するため、設計時、または実行時に動的に使用できます。たとえば、OracleDataReaderがサーバー・ラウンドトリップごとにN行をフェッチできるようにするには、OracleDataReaderFetchSizeプロパティを動的にRowSize * Nに設定できます。FetchSizeが適切に機能するようにするには、OracleCommand.ExecuteReader()の後で、OracleDataReader.Read()の前に設定する必要があります。

関連項目:

Transaction

このプロパティは、OracleCommandを実行するOracleTransactionオブジェクトを指定します。

宣言
// C#
public OracleTransaction Transaction {get;}
プロパティ値

OracleTransaction

実装

IDbCommand

備考

デフォルト値はnullです。

Transactionは、OracleCommand接続オブジェクトと関連付けられたトランザクション・オブジェクトへの参照を返します。したがって、その接続が現在置かれているトランザクション・コンテキストで、コマンドが実行されます。


注意:

このプロパティはIDbCommand参照を介してアクセスされた場合、その設定アクセッサ・メソッドが使用できません。


関連項目:

UpdatedRowSource

このプロパティは、問合せコマンドの結果を更新中の行に適用する方法を指定します。

宣言
// C#
public System.Data.UpdateRowSource UpdatedRowSource {final get; final set;}
プロパティ値

UpdateRowSource

実装

IDbCommand

例外

ArgumentException: 指定されたUpdateRowSource値が無効です。

備考

コマンドが自動的に生成された場合、デフォルトはUpdateRowSource.Noneです。コマンドが自動的に生成されない場合、デフォルトはUpdateRowSource.Bothです。

関連項目:

XmlCommandType

このプロパティは、OracleCommandに対するXML操作のタイプを指定します。

宣言
// C#
public OracleXmlCommandType XmlCommandType {get; set;}
プロパティ値

OracleXmlCommandType

備考

デフォルト値はNoneです。

XmlCommandTypeの値および使用方法は次のとおりです。

XmlQueryProperties

このプロパティは、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インスタンスのコピーを取得します。

関連項目:

XmlSaveProperties

このプロパティは、データベースに対する変更を保存するために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メソッド

OracleCommandのpublicメソッドを表4-7に示します。

表4-7 OracleCommandのpublicメソッド 
publicメソッド 説明

Cancel

サポートされていません。

Clone

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

CreateObjRef

MarshalByRefObjectから継承されます。

CreateParameter

OracleParameterクラスの新規インスタンスを作成します。

Dispose

Componentから継承されます。

Equals

Objectから継承されます(オーバーロード)。

ExecuteNonQuery

XmlCommandTypeプロパティおよびCommandTextプロパティを使用してSQL文またはコマンドを実行し、影響を受けた行数を返します。

ExecuteReader

コマンドを実行します(オーバーロード)。

ExecuteScalar

問合せにより返された結果セットの最初の行の最初の列を返します。

ExecuteStream

XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果を新規のStreamオブジェクトで返します。

ExecuteToStream

XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として既存のStreamに追加します。

ExecuteXmlReader

XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として.NETのXmlTextReaderオブジェクトで返します。

GetHashCode

Objectから継承されます。

GetLifetimeService

MarshalByRefObjectから継承されます。

GetType

Objectから継承されます。

InitializeLifetimeService

MarshalByRefObjectから継承されます。

Prepare

このメソッドはno-opです。

ToString

Objectから継承されます。

関連項目:

Clone

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

宣言
// C#
public object Clone();
戻り値

OracleCommandオブジェクト

実装

ICloneable

備考

クローニングされたオブジェクトは、クローニング元のオブジェクトと同じプロパティ値を持ちます。

// C#
...
//Need a proper casting for the return value when cloned
OracleCommand cmd_cloned = (OracleCommand) cmd.Clone();
...

関連項目:

CreateParameter

このメソッドは、OracleParameterクラスの新規インスタンスを作成します。

宣言
// C#
public OracleParameter CreateParameter();
戻り値

デフォルト値を持つ新規のOracleParameter

実装

IDbCommand

関連項目:

ExecuteNonQuery

このメソッドは、XmlCommandTypeプロパティおよびCommandTextプロパティを使用してSQL文またはコマンドを実行し、影響を受けた行数を返します。

宣言
// C#
public int ExecuteNonQuery();
戻り値

影響を受けた行数

実装

IDbCommand

例外

InvalidOperationException: コマンドを実行できません。

備考

ExecuteNonQueryは、次の場合に影響を受けた行数を返します。

その他のすべてのタイプの文の場合は、-1を返します。

ExecuteNonQueryは、次のいずれかの場合に使用されます。

ExecuteNonQueryは行を返しませんが、出力パラメータまたはパラメータにマップされた戻り値にデータを移入します。

XmlCommandTypeプロパティがOracleXmlCommandType.Queryに設定されている場合、ExecuteNonQueryによりCommandTextプロパティ内の選択文が実行され、成功すると-1を返します。生成されたXML文書が破棄されます。これは、結果としてXML文書が返されることなく、操作が正常に完了したかどうかを判断する場合に便利です。

XmlCommandTypeプロパティがOracleXmlCommandType.InsertOracleXmlCommandType.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

ExecuteReaderは、CommandTextで指定されたコマンドを実行します。

オーバーロード一覧:

ExecuteReader()

このメソッドは、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.InsertOracleXmlCommandType.UpdateOracleXmlCommandType.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();
...

関連項目:

ExecuteReader(CommandBehavior)

このメソッドは、指定された動作を使用して、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.InsertOracleXmlCommandType.UpdateOracleXmlCommandType.DeleteまたはOracleXmlCommandType.Queryに設定されている場合、ExecuteReaderメソッドによりInvalidOperationExceptionがスローされます。

関連項目:

ExecuteScalar

このメソッドは、接続を使用して問合せを実行し、問合せにより返された結果セットの最初の行の最初の列を返します。

宣言
// C#
public object ExecuteScalar();
戻り値

最初の行の最初の列の値を表すオブジェクト

実装

IDbCommand

例外

InvalidOperationException: コマンドを実行できません。

備考

残りの列または行は無視されます。ExecuteScalarは、データベースから1つの値(集計値など)を取得します。ExecuteReader()メソッドを使用し、OracleDataReaderによって返されたデータから1つの値を生成するよりも、このメソッドを使用した方がコードが簡潔になります。

問合せが行をまったく返さない場合は、nullが返されます。

XmlCommandTypeプロパティが、InsertUpdateDeleteQueryのいずれかのOracleXmlCommandType値に設定されている場合、ExecuteScalarメソッドによりInvalidOperationExceptionがスローされます。

// C#
...
CmdObj.CommandText = "select count(*) from emp";
decimal count = (decimal) CmdObj.ExecuteScalar();
...

関連項目:

ExecuteStream

このメソッドは、XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として新規のStreamオブジェクトで返します。

宣言
// C#
public Stream ExecuteStream();
戻り値

Stream

備考

ExecuteStreamの動作は、XmlCommandTypeプロパティの値に応じて異なります。

要件

このメソッドは、Oracle9i XML Developer's Kits(Oracle XDK)以上がデータベースにインストールされている必要があります。Oracle XDKは、Oracle Technology Network Japan(OTN-J)からダウンロードできます。

関連項目:

ExecuteToStream

このメソッドは、XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書としてアプリケーションで提供されている既存のStreamに追加します。

宣言
// C#
public void ExecuteToStream(Stream outputStream);
パラメータ
備考

ExecuteToStreamの動作は、XmlCommandTypeプロパティの値に応じて異なります。

要件

このメソッドは、Oracle9i XML Developer's Kits(Oracle XDK)以上がデータベースにインストールされている必要があります。Oracle XDKは、Oracle Technology Network Japan(OTN-J)からダウンロードできます。

関連項目:

ExecuteXmlReader

このメソッドは、XmlCommandTypeプロパティおよびCommandTextプロパティを使用してコマンドを実行し、結果をXML文書として.NETのXmlTextReaderオブジェクトで返します。

宣言
// C#
public XmlReader ExecuteXmlReader();
戻り値

XmlReader

備考

ExecuteXmlReaderの動作は、XmlCommandTypeプロパティの値に応じて異なります。

要件

このメソッドは、Oracle9i XML Developer's Kits(Oracle XDK)以上がデータベースにインストールされている必要があります。これはOracle Technology Network Japan(OTN-J)からダウンロードできます。

関連項目:


Go to previous page Go to beginning of chapter Go to next page
Oracle
Copyright © 2002, 2003 Oracle Corporation.

All Rights Reserved.
Go To Table Of Contents
目次
Go To Index
索引