| Oracle® Data Provider for .NET開発者ガイド リリース9.2.0.4 部品番号 B13807-01 |
|
Oracle.DataAccess.Clientネームスペース、15/30
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のコンストラクタを表4-85に示します。
| コンストラクタ | 説明 |
|---|---|
|
|
OracleParameterのstaticメソッドを表4-86に示します。
| メソッド | 説明 |
|---|---|
|
|
|
OracleParameterのプロパティを表4-87に示します。
OracleParameterのpublicメソッドを表4-88に示します。
OracleParameterのコンストラクタは、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたパラメータ名およびOracleデータ型を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたパラメータ名およびパラメータ値を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたパラメータ名、データ型およびパラメータの方向を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたパラメータ名、データ型、値および方向を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたパラメータ名、データ型およびサイズを使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたパラメータ名、データ型、サイズおよびソース列を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたパラメータ名、データ型、サイズ、方向、NULLインジケータ、精度、位取り、ソース列、ソースのバージョンおよびパラメータ値を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、指定されたパラメータ名、データ型、サイズ、値および方向を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
このコンストラクタは、OracleParameterクラスの新規インスタンスをインスタンス化します。
// C# public OracleParameter();
デフォルト値:
DbType: String
ParameterDirection: Input
isNullable: true
offset: 0
OracleDbType: Varchar2
ParameterAlias: 空の文字列
ParameterName: 空の文字列
Precision: 0
Size: 0
SourceColumn: 空の文字列
SourceVersion: Current
ArrayBindStatus: Success
Value: null
このコンストラクタは、指定されたパラメータ名およびOracleデータ型を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
// C# public OracleParameter(string parameterName, OracleDbType oraType);
DbTypeを変更すると、OracleDbTypeも暗黙的に変更されます。
コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。
デフォルト値:
DbType: String
ParameterDirection: Input
isNullable: true
offset: 0
OracleDbType: Varchar2
ParameterAlias: 空の文字列
ParameterName: 空の文字列
Precision: 0
Size: 0
SourceColumn: 空の文字列
SourceVersion: Current
ArrayBindStatus: Success
Value: null
このコンストラクタは、指定されたパラメータ名およびパラメータ値を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
// C# public OracleParameter(string parameterName, object obj);
コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。
デフォルト値:
DbType: String
ParameterDirection: Input
isNullable: true
offset: 0
OracleDbType: Varchar2
ParameterAlias: 空の文字列
ParameterName: 空の文字列
Precision: 0
Size: 0
SourceColumn: 空の文字列
SourceVersion: Current
ArrayBindStatus: Success
Value: null
このコンストラクタは、指定されたパラメータ名、データ型およびパラメータの方向を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
// C# public OracleParameter(string parameterName, OracleDbType type, ParameterDirection direction);
コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。
デフォルト値:
DbType: String
ParameterDirection: Input
isNullable: true
offset: 0
OracleDbType: Varchar2
ParameterAlias: 空の文字列
ParameterName: 空の文字列
Precision: 0
Size: 0
SourceColumn: 空の文字列
SourceVersion: Current
ArrayBindStatus: Success
Value: null
このコンストラクタは、指定されたパラメータ名、データ型、値および方向を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
// C# public OracleParameter(string parameterName, OracleDbType type, object obj, ParameterDirection direction);
parameterName
パラメータ名を指定します。
type
OracleParameterのデータ型を指定します。
obj
OracleParameterの値を指定します。
direction
ParameterDirection値の1つを指定します。
DbTypeを変更すると、OracleDbTypeも暗黙的に変更されます。
コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。
デフォルト値:
DbType: String
ParameterDirection: Input
isNullable: true
offset: 0
OracleDbType: Varchar2
ParameterAlias: 空の文字列
ParameterName: 空の文字列
Precision: 0
Size: 0
SourceColumn: 空の文字列
SourceVersion: Current
ArrayBindStatus: Success
Value: null
このコンストラクタは、指定されたパラメータ名、データ型およびサイズを使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
// C# public OracleParameter(string parameterName, OracleDbType type, int size);
コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。
デフォルト値:
DbType: String
ParameterDirection: Input
isNullable: true
offset: 0
OracleDbType: Varchar2
ParameterAlias: 空の文字列
ParameterName: 空の文字列
Precision: 0
Size: 0
SourceColumn: 空の文字列
SourceVersion: Current
ArrayBindStatus: Success
Value: null
このコンストラクタは、指定されたパラメータ名、データ型、サイズおよびソース列を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
// C# public OracleParameter(string parameterName, OracleDbType type, int size, string srcColumn);
parameterName
パラメータ名を指定します。
type
OracleParameterのデータ型を指定します。
size
OracleParameter値のサイズを指定します。
srcColumn
ソース列の名前を指定します。
コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。
デフォルト値:
DbType: String
ParameterDirection: Input
isNullable: true
offset: 0
OracleDbType: Varchar2
ParameterAlias: 空の文字列
ParameterName: 空の文字列
Precision: 0
Size: 0
SourceColumn: 空の文字列
SourceVersion: Current
ArrayBindStatus: Success
Value: null
このコンストラクタは、指定されたパラメータ名、データ型、サイズ、方向、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);
parameterName
パラメータ名を指定します。
oraType
OracleParameterのデータ型を指定します。
size
OracleParameter値のサイズを指定します。
direction
ParameterDirection値を指定します。
isNullable
パラメータがnull値をとれるかどうかを指定します。
precision
パラメータ値の精度を指定します。
scale
パラメータ値の小数点位置を指定します。
srcColumn
ソース列の名前を指定します。
srcVersion
DataRowVersion値の1つを指定します。
obj
パラメータ値を指定します。
ArgumentException: 指定された値は、OracleTypeのValueプロパティの型ではありません。
コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。
デフォルト値:
DbType: String
ParameterDirection: Input
isNullable: true
offset: 0
OracleDbType: Varchar2
ParameterAlias: 空の文字列
ParameterName: 空の文字列
Precision: 0
Size: 0
SourceColumn: 空の文字列
SourceVersion: Current
ArrayBindStatus: Success
Value: null
このコンストラクタは、指定されたパラメータ名、データ型、サイズ、値および方向を使用して、OracleParameterクラスの新規インスタンスをインスタンス化します。
// C# public OracleParameter(string parameterName, OracleDbType type, int size, object obj, ParameterDirection direction);
parameterName
パラメータ名を指定します。
type
OracleParameterのデータ型を指定します。
size
OracleParameter値のサイズを指定します。
obj
OracleParameterの値を指定します。
direction
ParameterDirection値の1つを指定します。
DbTypeを変更すると、OracleDbTypeも暗黙的に変更されます。
コンストラクタで明示的に設定しないかぎり、すべてのプロパティはデフォルト値を持ちます。
デフォルト値:
DbType: String
ParameterDirection: Input
isNullable: true
offset: 0
OracleDbType: Varchar2
ParameterAlias: 空の文字列
ParameterName: 空の文字列
Precision: 0
Size: 0
SourceColumn: 空の文字列
SourceVersion: Current
ArrayBindStatus: Success
Value: null
OracleParameterのstaticメソッドを表4-89に示します。
| メソッド | 説明 |
|---|---|
|
|
|
OracleParameterのプロパティを表4-90に示します。
このプロパティは、配列バインドまたはPL/SQL連想配列バインドを実行する前または後の、Valueプロパティの要素の入力サイズまたは出力サイズを指定します。
// C# public int[] ArrayBindSize {get; set; }
サイズを指定するint値の配列
デフォルトはnullです。
このプロパティは、配列バインドまたはPL/SQL連想配列の可変サイズ要素の型に対してのみ使用されます。固定サイズ要素の型の場合、このプロパティは無視されます。
ArrayBindSizeの各要素は、Valueプロパティの要素のバインド・サイズに対応します。実行する前、ArrayBindSizeは、Valueプロパティでバインドされる各要素の最大サイズを指定します。実行した後、ArrayBindSizeには、Valueプロパティで返された各要素のサイズが入ります。
可変長要素型の要素を持つPL/SQL連想配列をInputOutput、Outまたは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; ...
| 関連項目:
|
このプロパティは、配列バインドまたはPL/SQL連想配列バインドを実行する前または後の、Valueプロパティの各要素の入力ステータスまたは出力ステータスを指定します。
// C# public OracleParameterStatus[] ArrayBindStatus { get; set; }
OracleParameterStatus列挙値の配列
ArgumentOutOfRangeException: 指定されたStatus値が無効です。
デフォルトはnullです。
ArrayBindStatusは、配列バインドおよびPL/SQL連想配列の実行に対してのみ使用されます。
実行する前、ArrayBindStatusはValueプロパティの各要素のバインド・ステータスを示します。実行した後、ArrayBindStatusには、Valueプロパティの各要素の実行ステータスが入ります。
このプロパティは、OracleParameterがコレクションを表すかどうかを示し、表す場合は、コレクションの型を指定します。
// C# public OracleCollectionType CollectionType { get; set; }
OracleCollectionType列挙値
ArgumentException: 指定されたFetchSize値が無効です。
デフォルトはOracleCollectionType.Noneです。
OracleParameterがPL/SQL連想配列のバインドに使用される場合、CollectionTypeはOracleCollectionType.PLSQLAssociativeArrayに設定する必要があります。
このプロパティは、Data.DbType列挙型を使用して、パラメータのデータ型を指定します。
// C# public DbType DbType {get; set; }
DbType列挙値
IDataParameter
ArgumentException: 指定されたDbType値が無効です。
デフォルトはDbType.Stringです。
DbTypeは、OracleParameterオブジェクトが配列バインドまたはPL/SQL連想配列バインドの実行に使用される場合、配列内の各要素のデータ型です。
DbTypeプロパティとOracleDbTypeプロパティ間のリンクのため、DbTypeプロパティが設定されている場合、OracleDbTypeプロパティはDbTypeから推論されます。
このプロパティは、パラメータが入力専用、出力専用、双方向、またはストアド・ファンクションの戻り値パラメータのいずれであるかを指定します。
// C# public ParameterDirection Direction { get; set; }
ParameterDirection列挙値
IDataParameter
ArgumentOutOfRangeException: 指定されたParameterDirection値が無効です。
デフォルトはParameterDirection.Inputです。
指定可能な値は、Input、InputOutput、OutputおよびReturnValueです。
このプロパティは、Valueプロパティへのオフセットを指定します。
// C# public int Offset { get; set; }
オフセットを指定するint
ArgumentOutOfRangeException: 指定されたOffset値が無効です。
デフォルトは0です。
配列バインドおよびPL/SQL連想配列バインドの場合、Offsetは、Valueプロパティのすべての要素に適用されます。
Offsetプロパティは、バイナリおよび文字列データ型に使用されます。Offsetプロパティは、バイナリ型の場合はバイト数で、文字列の場合は文字数で表します。nullが参照される場合、文字列の数に終端文字は含まれません。Offsetプロパティは、次の型を持つパラメータで使用されます。
OracleDbType.Bfile
OracleDbType.Blob
OracleDbType.LongRaw
OracleDbType.Raw
OracleDbType.Char
OracleDbType.Clob
OracleDbType.NClob
OracleDbType.NChar
OracleDbType.NVarchar2
OracleDbType.Varchar2
このプロパティは、Oracleのデータ型を指定します。
// C# public OracleDbType OracleDbType { get; set; }
OracleDbType列挙値
デフォルトはOracleDbType.Varchar2です。
OracleParameterオブジェクトが配列バインドまたはPL/SQL連想配列バインドの実行に使用される場合、OracleDbTypeは配列内の各要素のデータ型です。
OracleDbTypeプロパティとDbTypeプロパティはリンクされています。このため、OracleDbTypeプロパティを設定すると、DbTypeプロパティが、サポートするDbTypeに変更されます。
このプロパティは、パラメータの名前を指定します。
// C# public string ParameterName { get; set; }
String
IDataParameter
デフォルトはnullです。
30文字までのParameterNameがサポートされています。
このプロパティは、Valueプロパティを表す際に使用される最大桁数を指定します。
// C# Public byte Precision { get; set; }
byte
デフォルトは0です。
Precisionプロパティは、OracleDbType.Decimal型のパラメータで使用されます。
Precisionの範囲として、0〜38がサポートされています。
配列バインドおよびPL/SQL連想配列バインドの場合、Precisionは、Valueプロパティの各要素に適用されます。
このプロパティは、Valueプロパティが解決される小数点以下の桁数を指定します。
// C# public byte Scale { get; set; }
byte
デフォルトは0です。
Scaleは、OracleDbType.Decimal型のパラメータで使用されます。
Scaleの範囲として、-84〜127がサポートされています。
配列バインドおよびPL/SQL連想配列バインドの場合、Scaleは、Valueプロパティの各要素に適用されます。
このプロパティは、サーバーへ、またはサーバーから送信されるデータの最大サイズをバイト単位または文字単位で指定します。
PL/SQL連想配列バインドの場合、Sizeは、PL/SQL連想配列の要素の最大数を指定します。
// C# public int Size { get; set;}
int
ArgumentOutOfRangeException: 指定されたSize値が無効です。
InvalidOperationException: OracleParameterオブジェクトがPL/SQL連想配列のバインドに使用される場合、Sizeは0です。
デフォルト値は0です。
実行する前、このプロパティはValueプロパティにバインドされる最大サイズを指定します。実行した後、このプロパティには、Valueプロパティの型のサイズが入ります。
Sizeは、次のタイプのパラメータに使用されます。
OracleDbType.Blob
OracleDbType.Char
OracleDbType.Clob
OracleDbType.LongRaw
OracleDbType.NChar
OracleDbType.NClob
OracleDbType.NVarchar2
OracleDbType.Raw
OracleDbType.Varchar2
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連想配列のバインドに使用される場合、Sizeは0に設定できません。
このプロパティは、DataSetのDataTable列の名前を指定します。
// C# public string SourceColumn { get; set; }
string
IDataParameter
デフォルトは空の文字列です。
このプロパティは、パラメータのValueプロパティをロードする際に使用するDataRowVersion値を指定します。
// C# public DataRowVersion SourceVersion { get; set; }
DataRowVersion
IDataParameter
ArgumentOutOfRangeException: 指定されたDataRowVersion値が無効です。
デフォルトはDataRowVersion.Currentです。
SourceVersionは、元の値と現在の値のどちらがパラメータ値に使用されているのかを判断するために、OracleDataAdapter.Update時に、OracleDataAdapter.UpdateCommand()によって使用されます。これにより、主キーを更新できます。このプロパティは、OracleDataAdapter.InsertCommand()およびOracleDataAdapter.DeleteCommand()では無視されます。
このプロパティは、Valueプロパティのデータに関係する実行のステータスを示します。
// C# public OracleParameterStatus Status { get; set; }
OracleParameterStatus列挙値
ArgumentOutOfRangeException: 指定されたStatus値が無効です。
デフォルトはOracleParameterStatus.Successです。
実行する前、このプロパティは、Valueプロパティ関連のバインドのステータスを示します。実行した後は、実行のステータスを返します。
Statusは次のいずれかを示します。
nullが列からフェッチされます。
Valueはデータを保持できるほど大きくありませんでした。
nullがデータベース列に挿入されます。Valueは無視され、nullがデータベース列に挿入されます。
配列バインドおよびPL/SQL連想配列バインドの場合、このプロパティは無視されます。かわりに、ArrayBindStatusプロパティが使用されます。
このプロパティは、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値を表すために使用されます。StatusをOracleParameterStatus.NullValueに設定すると、ユーザーはnull値を指定することもできます。この場合、プロバイダはデータベースにnull値を送信します。
OracleDbTypeとDbTypeのどちらも設定されていない場合、これらの値はValueによって推論できます。
入力パラメータの場合、値は次のようになります。
出力パラメータの場合、値は次のようになります。
配列バインドが使用される場合は次のようになります。
Valueが値の配列に設定される必要があります。バインドされる要素数を示すように、OracleCommand.ArrayBindCountは0より大きな値に設定される必要があります。
配列内の要素数は、OracleCommand.ArrayBindCountプロパティと同数に設定する必要があります。設定しない場合は、それらの最小値を使用して、配列内の要素がバインドされます。
OracleCommand.ArrayBindCountは0より大きな値に設定される必要があります(SELECT文の場合)。
PL/SQL連想配列バインドが次のパラメータで使用される場合:
Valueが値の配列に設定される必要があります。CollectionTypeがOracleCollection.PLSQLAssociativeArrayに設定される必要があります。Sizeが、PL/SQL連想配列内の配列要素で可能な最大数を指定するように設定される必要があります。SizeがValueの要素数より小さい場合、SizeはValueプロパティ内のバインドされる要素の数を指定します。
CollectionTypeがOracleCollection.PLSQLAssociativeArrayに設定される必要があります。Sizeが、PL/SQL連想配列内の配列要素の最大数を指定するように設定される必要があります。
各パラメータには、必ず値を1つ指定します。パラメータをnull値でバインドするには、ValueをDBNull.Valueに設定するか、またはStatusをOracleParameterStatus. NullInsertに設定します。
OracleParameterのpublicメソッドを表4-91に示します。
このメソッドは、OracleParameterオブジェクトの浅いコピーを作成します。
// C# public object Clone();
OracleParameterオブジェクト
ICloneable
クローニングされたオブジェクトは、クローニング元のオブジェクトと同じプロパティ値を持ちます。
// C# ... //Need a proper casting for the return value when cloned OracleParameter param_cloned = (OracleParameter) param.Clone(); ...
このメソッドは、OracleParameterオブジェクトに割り当てられたリソースを解放します。
// C# public void Dispose();
IDisposable
|
|
![]() Copyright © 2002, 2003 Oracle Corporation. All Rights Reserved. |
|