ヘッダーをスキップ

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ネームスペース、15/30


OracleParameterクラス

OracleParameterオブジェクトは、OracleCommandまたはDataSet列のパラメータを表します。

クラスの継承

Object

  MarshalByRefObject

    OracleParameter

宣言
// C#
public sealed class OracleParameter : MarshalByRefObject, IDBDataParameter,
   IDataParameter, IDisposable, ICloneable
スレッド・セーフティ

インスタンス・メソッドではスレッド・セーフティを保証しませんが、すべてのpublic staticメソッドはスレッド・セーフです。

例外

ArgumentException: 型バインドが無効です。

// C#
...
OracleParameter [] prm = new OracleParameter[3];

// Create OracleParameter objects through OracleParameterCollection
prm[0] = cmd.Parameters.Add("paramEmpno", OracleDbType.Decimal, 1234,
    ParameterDirection.Input);
prm[1] = cmd.Parameters.Add("paramEname", OracleDbType.Varchar2,
    "Client", ParameterDirection.Input);
prm[2] = cmd.Parameters.Add("paramDeptNo", OracleDbType.Decimal,
    10, ParameterDirection.Input);

cmd.CommandText = "insert into emp(empno, ename, deptno) values(:1, :2, :3)";
cmd.CommandType = CommandType.CommandText;
cmd.ExecuteNonQuery();
...

要件

ネームスペース: Oracle.DataAccess.Client

アセンブリ: Oracle.DataAccess.dll

関連項目:

OracleParameterのメンバー

OracleParameterのメンバーを次の表に示します。

OracleParameterのコンストラクタ

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

表4-85 OracleParameterのコンストラクタ
コンストラクタ 説明

OracleParameterのコンストラクタ

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

OracleParameterのstaticメソッド

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

表4-86 OracleParameterのstaticメソッド 
メソッド 説明

Equals

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

OracleParameterのプロパティ

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

表4-87 OracleParameterのプロパティ 
名前 説明

ArrayBindSize

配列バインドまたはPL/SQL連想配列バインドを実行する前または後のパラメータの入力サイズまたは出力サイズを指定します。

ArrayBindStatus

配列バインドまたはPL/SQL連想配列バインドを実行する前または後のパラメータの入力ステータスまたは出力ステータスを指定します。

CollectionType

OracleParameterがコレクションを表すかどうかを示し、表す場合は、コレクションの型を指定します。

DbType

Data.DbType列挙型を使用して、パラメータのデータ型を指定します。

Direction

パラメータが入力専用、出力専用、双方向、またはストアド・ファンクションの戻り値パラメータのいずれであるかを指定します。

IsNullable

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

Offset

Valueプロパティへのオフセット、またはValueプロパティの要素へのオフセットを指定します。

OracleDbType

Oracleのデータ型を指定します。

ParameterName

パラメータの名前を指定します。

Precision

Valueプロパティを表す際に使用される最大桁数を指定します。

Scale

Valueプロパティが解決される小数点以下の桁数を指定します。

Size

サーバーへ、またはサーバーから送信されるデータの最大サイズをバイト単位または文字単位で指定します。PL/SQL連想配列バインドの場合、Sizeは、PL/SQL連想配列の要素の最大数を指定します。

SourceColumn

DataSetDataTable列の名前を指定します。

SourceVersion

パラメータのValueプロパティをロードする際に使用するDataRowVersion値を指定します。

Status

Valueプロパティのデータに関係する実行のステータスを示します。

Value

Parameterの値を指定します。

OracleParameterのpublicメソッド

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

表4-88 OracleParameterのpublicメソッド 
publicメソッド 説明

Clone

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

CreateObjRef

MarshalByRefObjectから継承されます。

Dispose

割り当てられたリソースを解放します。

Equals

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

GetHashCode

Objectから継承されます。

GetLifetimeService

MarshalByRefObjectから継承されます。

GetType

Objectから継承されます。

InitializeLifetimeService

MarshalByRefObjectから継承されます。

ToString

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

関連項目:

OracleParameterのコンストラクタ

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

オーバーロード一覧:

OracleParameter()

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

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

デフォルト値:

OracleParameter (string, OracleDbType)

このコンストラクタは、指定されたパラメータ名およびOracleデータ型を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleParameter(string parameterName, OracleDbType oraType);
パラメータ
備考

DbTypeを変更すると、OracleDbTypeも暗黙的に変更されます。

コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。

デフォルト値:

OracleParameter(string, object)

このコンストラクタは、指定されたパラメータ名およびパラメータ値を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleParameter(string parameterName, object obj);
パラメータ
備考

コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。

デフォルト値:

OracleParameter(string, OracleDbType, ParameterDirection)

このコンストラクタは、指定されたパラメータ名、データ型およびパラメータの方向を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleParameter(string parameterName, OracleDbType type,
ParameterDirection direction);
パラメータ
備考

コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。

デフォルト値:

OracleParameter(string, OracleDbType, object, ParameterDirection)

このコンストラクタは、指定されたパラメータ名、データ型、値および方向を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleParameter(string parameterName, OracleDbType type, object obj,
ParameterDirection direction);
パラメータ
備考

DbTypeを変更すると、OracleDbTypeも暗黙的に変更されます。

コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。

デフォルト値:

OracleParameter(string, OracleDbType, int)

このコンストラクタは、指定されたパラメータ名、データ型およびサイズを使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleParameter(string parameterName, OracleDbType type, int size);
パラメータ
備考

コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。

デフォルト値:

OracleParameter(string, OracleDbType, int, string)

このコンストラクタは、指定されたパラメータ名、データ型、サイズおよびソース列を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleParameter(string parameterName, OracleDbType type, int size,
 string srcColumn);
パラメータ
備考

コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。

デフォルト値:

OracleParameter(string, OracleDbType, int, ParameterDirection, bool, byte, byte, string, DataRowVersion, object)

このコンストラクタは、指定されたパラメータ名、データ型、サイズ、方向、NULLインジケータ、精度、位取り、ソース列、ソースのバージョンおよびパラメータ値を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleParameter(string parameterName, OracleDbType oraType, int size,
 ParameterDirection direction, bool isNullable, byte precision, byte scale,
 string srcColumn, DataRowVersion srcVersion, object obj);
パラメータ
例外

ArgumentException: 指定された値は、OracleTypeValueプロパティの型ではありません。

備考

コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。

デフォルト値:

OracleParameter(string, OracleDbType, int, object, ParameterDirection)

このコンストラクタは、指定されたパラメータ名、データ型、サイズ、値および方向を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。

宣言
// C#
public OracleParameter(string parameterName, OracleDbType type, int size, object
obj, ParameterDirection direction);
パラメータ
備考

DbTypeを変更すると、OracleDbTypeも暗黙的に変更されます。

コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。

デフォルト値:

OracleParameterのstaticメソッド

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

表4-89 OracleParameterのstaticメソッド 
メソッド 説明

Equals

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

関連項目:

OracleParameterのプロパティ

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

表4-90 OracleParameterのプロパティ 
名前 説明

ArrayBindSize

配列バインドまたはPL/SQL連想配列バインドを実行する前または後の、パラメータのValueプロパティにおける要素の入力サイズまたは出力サイズを指定します。

ArrayBindStatus

配列バインドまたはPL/SQL連想配列バインドを実行する前または後の、パラメータのValueプロパティにおける要素の入力ステータスまたは出力ステータスを指定します。

CollectionType

OracleParameterがコレクションを表すかどうかを示し、表す場合は、コレクションの型を指定します。

DbType

Data.DbType列挙型を使用して、パラメータのデータ型を指定します。

Direction

パラメータが入力専用、出力専用、双方向、またはストアド・ファンクションの戻り値パラメータのいずれであるかを指定します。

IsNullable

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

Offset

Valueプロパティへのオフセット、またはValueプロパティの要素へのオフセットを指定します。

OracleDbType

Oracleのデータ型を指定します。

ParameterName

パラメータの名前を指定します。

Precision

Valueプロパティを表す際に使用される最大桁数を指定します。

Scale

Valueプロパティが解決される小数点以下の桁数を指定します。

Size

サーバーへ、またはサーバーから送信されるデータの最大サイズをバイト単位または文字単位で指定します。PL/SQL連想配列バインドの場合、Sizeは、PL/SQL連想配列の要素の最大数を指定します。

SourceColumn

DataSetDataTable列の名前を指定します。

SourceVersion

パラメータのValueプロパティをロードする際に使用するDataRowVersion値を指定します。

Status

Valueプロパティのデータに関係する実行のステータスを示します。

Value

Parameterの値を指定します。

関連項目:

ArrayBindSize

このプロパティは、配列バインドまたはPL/SQL連想配列バインドを実行する前または後の、Valueプロパティの要素の入力サイズまたは出力サイズを指定します。

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

サイズを指定するint値の配列

備考

デフォルトはnullです。

このプロパティは、配列バインドまたはPL/SQL連想配列の可変サイズ要素の型に対してのみ使用されます。固定サイズ要素の型の場合、このプロパティは無視されます。

ArrayBindSizeの各要素は、Valueプロパティの要素のバインド・サイズに対応します。実行する前、ArrayBindSizeは、Valueプロパティでバインドされる各要素の最大サイズを指定します。実行した後、ArrayBindSizeには、Valueプロパティで返された各要素のサイズが入ります。

可変長要素型の要素を持つPL/SQL連想配列をInputOutputOutまたはReturnValueパラメータとしてバインドするには、このプロパティを設定し、ArrayBindSizeの要素数がValueプロパティの要素数以上であることが必要です。

// C#
...
OracleParameter Param = new OracleParameter("name", OracleDbType.Varchar2);
Param.ArrayBindSize = new Int32[3];

// These sizes indicate the maximum size of the elements in parameter Value
// property.
Param.ArrayBindSize[0] = 100;
Param.ArrayBindSize[1] = 300;
Param.ArrayBindSize[2] = 200;
...

関連項目:

ArrayBindStatus

このプロパティは、配列バインドまたはPL/SQL連想配列バインドを実行する前または後の、Valueプロパティの各要素の入力ステータスまたは出力ステータスを指定します。

宣言
// C#
public OracleParameterStatus[] ArrayBindStatus { get; set; }
プロパティ値

OracleParameterStatus列挙値の配列

例外

ArgumentOutOfRangeException: 指定されたStatus値が無効です。

備考

デフォルトはnullです。

ArrayBindStatusは、配列バインドおよびPL/SQL連想配列の実行に対してのみ使用されます。

実行する前、ArrayBindStatusValueプロパティの各要素のバインド・ステータスを示します。実行した後、ArrayBindStatusには、Valueプロパティの各要素の実行ステータスが入ります。

関連項目:

CollectionType

このプロパティは、OracleParameterがコレクションを表すかどうかを示し、表す場合は、コレクションの型を指定します。

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

OracleCollectionType列挙値

例外

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

備考

デフォルトはOracleCollectionType.Noneです。

OracleParameterがPL/SQL連想配列のバインドに使用される場合、CollectionTypeOracleCollectionType.PLSQLAssociativeArrayに設定する必要があります。

関連項目:

DbType

このプロパティは、Data.DbType列挙型を使用して、パラメータのデータ型を指定します。

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

DbType列挙値

実装

IDataParameter

例外

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

備考

デフォルトはDbType.Stringです。

DbTypeは、OracleParameterオブジェクトが配列バインドまたはPL/SQL連想配列バインドの実行に使用される場合、配列内の各要素のデータ型です。

DbTypeプロパティとOracleDbTypeプロパティ間のリンクのため、DbTypeプロパティが設定されている場合、OracleDbTypeプロパティはDbTypeから推論されます。

関連項目:

Direction

このプロパティは、パラメータが入力専用、出力専用、双方向、またはストアド・ファンクションの戻り値パラメータのいずれであるかを指定します。

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

ParameterDirection列挙値

実装

IDataParameter

例外

ArgumentOutOfRangeException: 指定されたParameterDirection値が無効です。

備考

デフォルトはParameterDirection.Inputです。

指定可能な値は、InputInputOutputOutputおよびReturnValueです。

関連項目:

Offset

このプロパティは、Valueプロパティへのオフセットを指定します。

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

オフセットを指定するint

例外

ArgumentOutOfRangeException: 指定されたOffset値が無効です。

備考

デフォルトは0です。

配列バインドおよびPL/SQL連想配列バインドの場合、Offsetは、Valueプロパティのすべての要素に適用されます。

Offsetプロパティは、バイナリおよび文字列データ型に使用されます。Offsetプロパティは、バイナリ型の場合はバイト数で、文字列の場合は文字数で表します。nullが参照される場合、文字列の数に終端文字は含まれません。Offsetプロパティは、次の型を持つパラメータで使用されます。

OracleDbType

このプロパティは、Oracleのデータ型を指定します。

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

OracleDbType列挙値

備考

デフォルトはOracleDbType.Varchar2です。

OracleParameterオブジェクトが配列バインドまたはPL/SQL連想配列バインドの実行に使用される場合、OracleDbTypeは配列内の各要素のデータ型です。

OracleDbTypeプロパティとDbTypeプロパティはリンクされています。このため、OracleDbTypeプロパティを設定すると、DbTypeプロパティが、サポートするDbTypeに変更されます。

関連項目:

ParameterName

このプロパティは、パラメータの名前を指定します。

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

String

実装

IDataParameter

備考

デフォルトはnullです。

30文字までのParameterNameがサポートされています。

関連項目:

Precision

このプロパティは、Valueプロパティを表す際に使用される最大桁数を指定します。

宣言
// C#
Public byte Precision { get; set; }
プロパティ値

byte

備考

デフォルトは0です。

Precisionプロパティは、OracleDbType.Decimal型のパラメータで使用されます。

Precisionの範囲として、038がサポートされています。

配列バインドおよびPL/SQL連想配列バインドの場合、Precisionは、Valueプロパティの各要素に適用されます。

関連項目:

Scale

このプロパティは、Valueプロパティが解決される小数点以下の桁数を指定します。

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

byte

備考

デフォルトは0です。

Scaleは、OracleDbType.Decimal型のパラメータで使用されます。

Scaleの範囲として、-84127がサポートされています。

配列バインドおよびPL/SQL連想配列バインドの場合、Scaleは、Valueプロパティの各要素に適用されます。

関連項目:

Size

このプロパティは、サーバーへ、またはサーバーから送信されるデータの最大サイズをバイト単位または文字単位で指定します。

PL/SQL連想配列バインドの場合、Sizeは、PL/SQL連想配列の要素の最大数を指定します。

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

int

例外

ArgumentOutOfRangeException: 指定されたSize値が無効です。

InvalidOperationException: OracleParameterオブジェクトがPL/SQL連想配列のバインドに使用される場合、Size0です。

備考

デフォルト値は0です。

実行する前、このプロパティはValueプロパティにバインドされる最大サイズを指定します。実行した後、このプロパティには、Valueプロパティの型のサイズが入ります。

Sizeは、次のタイプのパラメータに使用されます。

Sizeの値は、次のように処理されます。

Sizeが明示的に設定されていない場合は、バインド時に指定されたパラメータ値の実際のサイズから推論されます。


注意:

Sizeには、文字列データのヌル終端文字は含まれません。


OracleParameterオブジェクトがPL/SQL連想配列のバインドに使用される場合、SizeはPL/SQL連想配列の要素の最大数を指定します。実行する前、このプロパティはPL/SQL連想配列内の要素の最大数を指定します。実行した後、このプロパティはPL/SQL連想配列で返された要素の現在の数を指定します。OutputパラメータおよびInputOutputパラメータと戻り値の場合、SizeはPL/SQL連想配列内の要素の最大数を指定します。

ODP.NETでは、空のPL/SQL連想配列のバインドはサポートされていません。したがって、OracleParameterオブジェクトがPL/SQL連想配列のバインドに使用される場合、Size0に設定できません。

関連項目:

SourceColumn

このプロパティは、DataSetDataTable列の名前を指定します。

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

string

実装

IDataParameter

備考

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

関連項目:

SourceVersion

このプロパティは、パラメータのValueプロパティをロードする際に使用するDataRowVersion値を指定します。

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

DataRowVersion

実装

IDataParameter

例外

ArgumentOutOfRangeException: 指定されたDataRowVersion値が無効です。

備考

デフォルトはDataRowVersion.Currentです。

SourceVersionは、元の値と現在の値のどちらがパラメータ値に使用されているのかを判断するために、OracleDataAdapter.Update時に、OracleDataAdapter.UpdateCommand()によって使用されます。これにより、主キーを更新できます。このプロパティは、OracleDataAdapter.InsertCommand()およびOracleDataAdapter.DeleteCommand()では無視されます。

関連項目:

Status

このプロパティは、Valueプロパティのデータに関係する実行のステータスを示します。

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

OracleParameterStatus列挙値

例外

ArgumentOutOfRangeException: 指定されたStatus値が無効です。

備考

デフォルトはOracleParameterStatus.Successです。

実行する前、このプロパティは、Valueプロパティ関連のバインドのステータスを示します。実行した後は、実行のステータスを返します。

Statusは次のいずれかを示します。

配列バインドおよびPL/SQL連想配列バインドの場合、このプロパティは無視されます。かわりに、ArrayBindStatusプロパティが使用されます。

関連項目:

Value

このプロパティは、Parameterの値を指定します。

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

オブジェクト

実装

IDataParameter

例外

ArgumentException: 指定されたValueプロパティが無効です。

InvalidArgumentException: 指定されたValueプロパティが無効です。

備考

デフォルトはnullです。

配列バインドまたはPL/SQL連想配列にOracleParameterオブジェクトが使用される場合、Valueはパラメータ値の配列です。

Valueプロパティは、OracleDataAdapter.Update()によって上書きされる場合があります。

プロバイダは、IConvertibleインタフェースをサポートしている場合、任意の型の値を変換しようとします。指定された型と値に互換性がない場合、変換エラーが発生します。

データベースにnullパラメータ値が送信されている場合、ユーザーはnullではなくDBNullを指定する必要があります。システムのnull値は、値を持たない空のオブジェクトです。DBNullは、null値を表すために使用されます。StatusOracleParameterStatus.NullValueに設定すると、ユーザーはnull値を指定することもできます。この場合、プロバイダはデータベースにnull値を送信します。

OracleDbTypeDbTypeのどちらも設定されていない場合、これらの値はValueによって推論できます。

関連項目:

入力パラメータの場合、値は次のようになります。

出力パラメータの場合、値は次のようになります。

配列バインドが使用される場合は次のようになります。

PL/SQL連想配列バインドが次のパラメータで使用される場合:

各パラメータには、必ず値を1つ指定します。パラメータをnull値でバインドするには、ValueDBNull.Valueに設定するか、またはStatusOracleParameterStatus. NullInsertに設定します。

関連項目:

OracleParameterのpublicメソッド

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

表4-91 OracleParameterのpublicメソッド 
publicメソッド 説明

Clone

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

CreateObjRef

MarshalByRefObjectから継承されます。

Dispose

割り当てられたリソースを解放します。

Equals

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

GetHashCode

Objectから継承されます。

GetLifetimeService

MarshalByRefObjectから継承されます。

GetType

Objectから継承されます。

InitializeLifetimeService

MarshalByRefObjectから継承されます。

ToString

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

関連項目:

Clone

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

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

OracleParameterオブジェクト

実装

ICloneable

備考

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

// C#
...
//Need a proper casting for the return value when cloned
OracleParameter param_cloned = (OracleParameter) param.Clone();
...

関連項目:

Dispose

このメソッドは、OracleParameterオブジェクトに割り当てられたリソースを解放します。

宣言
// C#
public void Dispose();
実装

IDisposable

関連項目:


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
索引