OracleParameter
オブジェクトは、OracleCommand
またはDataSet
列のパラメータを表します。
クラスの継承
System.Object
System.MarshalByRefObject
System.Data.Common.DbParameter
(ADO.NET 2.0専用)
Oracle.DataAccess.Client.OracleParameter
宣言
// ADO.NET 2.0: C# public sealed class OracleParameter : DbParameter, IDisposable, ICloneable
スレッド安全性
パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。
例外
ArgumentException
: 型バインディングが無効です。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; using Oracle.DataAccess.Types; class OracleParameterSample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); OracleParameter[] prm = new OracleParameter[3]; // Create OracleParameter objects through OracleParameterCollection OracleCommand cmd = con.CreateCommand(); cmd.CommandText = "select max(empno) from emp"; int maxno = int.Parse(cmd.ExecuteScalar().ToString()); prm[0] = cmd.Parameters.Add("paramEmpno", OracleDbType.Decimal, maxno + 10, 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.ExecuteNonQuery(); Console.WriteLine("Record for employee id {0} has been inserted.", maxno + 10); } }
要件
ネームスペース: Oracle.DataAccess.Client
アセンブリ: Oracle.DataAccess.dll
Microsoft .NET Framework Version: 2.0以降
OracleParameter
メンバーは、次の各表にリストしています。
OracleParameterコンストラクタ
OracleParameter
コンストラクタを、表5-74にリストします。
OracleParameter静的メソッド
OracleParameter
静的メソッドを、表5-75にリストします。
OracleParameterプロパティ
OracleParameter
プロパティを、表5-76にリストします。
表5-76 OracleParameterプロパティ
プロパティ | 説明 |
---|---|
配列バインドまたはPL/SQL連想配列バインドが実行される前または後に、パラメータの |
|
配列バインドまたはPL/SQL連想配列バインドが実行される前または後に、パラメータの |
|
|
|
|
|
パラメータが入力のみ、出力のみ、双方向またはストアド・ファンクションの戻り値パラメータかどうかを指定します |
|
|
サポート対象外 |
|
|
Oracleデータ型を指定します。 |
|
|
どのOracleデータ型としてパラメータをバインドするかを指定しますが、出力としては.NETタイプを戻します |
パラメータの名前を指定します |
|
|
|
|
|
データベースに送信する、またはデータベースから送信されるデータの最大サイズをバイト数または文字数で指定します。PL/SQL連想配列バインドの場合、 |
|
|
|
|
ソース列にNULLを使用できるかどうかを示す値を指定します。 ADO.NET 2.0準拠のODP.NETでのみサポートされています。 |
パラメータの |
|
|
|
|
パラメータがユーザー定義のデータ型の場合、Oracleユーザー定義のタイプ名を指定します |
|
|
OracleParameterパブリック・メソッド
OracleParameter
パブリック・メソッドを、表5-77にリストします。
表5-77 OracleParameterパブリック・メソッド
パブリック・メソッド | 説明 |
---|---|
|
|
|
|
|
割り当てられたリソースを解除します |
|
|
|
|
|
|
|
|
|
|
|
パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。 ADO.NET 2.0準拠のODP.NETでのみサポートされています。 |
|
パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。 ADO.NET 2.0準拠のODP.NETでのみサポートされています。 |
|
|
OracleParameter
コンストラクタでは、OracleParameter
クラスの新規インスタンスが作成されます。
オーバーロード・リスト:
このコンストラクタでは、OracleParameter
クラスの新規インスタンスが作成されます。
OracleParameter (string, OracleDbType)
このコンストラクタでは、指定されたパラメータ名およびOracleデータ型を使用して、OracleParameter
クラスの新規インスタンスが作成されます。
OracleParameter(string, object)
このコンストラクタでは、指定されたパラメータ名およびパラメータ値を使用して、OracleParameter
クラスの新規インスタンスが作成されます。
OracleParameter(string, OracleDbType, ParameterDirection)
このコンストラクタでは、指定されたパラメータ名、データ型およびパラメータ・ディレクションを使用して、OracleParameter
クラスの新規インスタンスが作成されます。
OracleParameter(string, OracleDbType, object, ParameterDirection)
このコンストラクタでは、指定されたパラメータ名、データ型、値およびディレクションを使用して、OracleParameter
クラスの新規インスタンスが作成されます。
OracleParameter(string, OracleDbType, int)
このコンストラクタでは、指定されたパラメータ名、データ型およびサイズを使用して、OracleParameter
クラスの新規インスタンスが作成されます。
OracleParameter(string, OracleDbType, int, string)
このコンストラクタでは、指定されたパラメータ名、データ型、サイズおよびソース列を使用して、OracleParameter
クラスの新規インスタンスが作成されます。
このコンストラクタでは、指定されたパラメータ名、データ型、サイズ、ディレクション、NULLインジケータ、精度、スケール、ソース列、ソース・バージョンおよびパラメータ値を使用して、OracleParameter
クラスの新規インスタンスが作成されます。
OracleParameter(string, OracleDbType, int, object, ParameterDirection)
このコンストラクタでは、指定されたパラメータ名、データ型、サイズ、値およびディレクションを使用して、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);
パラメータ
parameterName
パラメータ名
oraType
OracleParameter
のデータ型
備考
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);
パラメータ
parameterName
パラメータ名
obj
OracleParameter
の値
備考
コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。
デフォルト値:
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);
パラメータ
parameterName
パラメータ名
type
OracleParameter
のデータ型
direction
OracleParameter
のデータ型
備考
コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。
デフォルト値:
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
値
備考
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);
パラメータ
parameterName
パラメータ名
type
OracleParameter
のデータ型
size
OracleParameter
値のサイズ
備考
コンストラクタで明示的に設定します。されないかぎり、すべてのプロパティにはデフォルト値があります。
デフォルト値:
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
値
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
値
備考
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
静的メソッドを、表5-78にリストします。
OracleParameter
プロパティを、表5-79にリストします。
表5-79 OracleParameterプロパティ
プロパティ | 説明 |
---|---|
配列バインドまたはPL/SQL連想配列バインドが実行される前または後に、パラメータの |
|
配列バインドまたはPL/SQL連想配列バインドが実行される前または後に、パラメータの |
|
|
|
|
|
パラメータが入力のみ、出力のみ、双方向またはストアド・ファンクションの戻り値パラメータかどうかを指定します |
|
|
サポート対象外 |
|
|
Oracleデータ型を指定します。 |
|
|
どのOracleデータ型としてパラメータをバインドするかを指定しますが、出力としては.NETタイプを戻します |
パラメータの名前を指定します |
|
|
|
|
|
データベースに送信する、またはデータベースから送信されるデータの最大サイズをバイト数または文字数で指定します。PL/SQL連想配列バインドの場合、 |
|
|
|
|
ソース列にNULLを使用できるかどうかを示す値を指定します。 ADO.NET 2.0準拠のODP.NETでのみサポートされています。 |
パラメータの |
|
|
|
|
パラメータがユーザー定義のデータ型の場合、Oracleユーザー定義のタイプ名を指定します |
|
|
このプロパティは、データベースに送信する、またはデータベースから送信される、各配列要素のデータの最大サイズを、バイト数または文字数で指定します。このプロパティは、配列バインドまたはPL/SQL連想配列の実行に使用されます。
宣言
// C# public int[] ArrayBindSize {get; set; }
プロパティ値
サイズを指定する整数の配列
備考
デフォルト = null
このプロパティは、配列バインドまたはPL/SQL連想配列の可変サイズの要素タイプにのみ使用されます。固定サイズの要素タイプでは、このプロパティは無視されます。
ArrayBindSize
の各要素は、Value
プロパティの要素のバインド・サイズに対応しています。実行前は、ArrayBindSize
により、Value
プロパティにバインドされる各要素の最大サイズが指定されています。実行後は、Value
プロパティに戻された各要素のサイズが含まれます。
PL/SQL連想配列のバインドの場合、要素は可変長の要素タイプであり、このプロパティはInputOutput
、Out
、またはReturnValue
パラメータとして適切に設定する必要があります。ArrayBindSize
の要素数は、OracleParameter.Size
プロパティで指定されている値と同じである必要があります。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class ArrayBindSizeSample { static void Main() { string constr = "User Id=scott;Password=tiger;Data Source=oracle"; OracleConnection con = new OracleConnection(constr); con.Open(); OracleParameter[] prm = new OracleParameter[3]; // Create OracleParameter objects through OracleParameterCollection OracleCommand cmd = con.CreateCommand(); cmd.CommandText = "select max(empno) from emp"; int maxno = int.Parse(cmd.ExecuteScalar().ToString()); // Set the ArrayBindCount for Array Binding cmd.ArrayBindCount = 2; prm[0] = cmd.Parameters.Add("paramEmpno", OracleDbType.Decimal, new int[2] {maxno + 10, maxno + 11}, ParameterDirection.Input); prm[1] = cmd.Parameters.Add("paramEname", OracleDbType.Varchar2, new string[2] {"Client1xxx", "Client2xxx"}, ParameterDirection.Input); prm[2] = cmd.Parameters.Add("paramDeptNo", OracleDbType.Decimal, new int[2] {10, 10}, ParameterDirection.Input); // Set the ArrayBindSize for prm[1] // These sizes indicate the maximum size of the elements in Value property prm[1].ArrayBindSize = new int[2]; prm[1].ArrayBindSize[0] = 7; // Set ename = "Client1" prm[1].ArrayBindSize[1] = 7; // Set ename = "Client2" cmd.CommandText = "insert into emp(empno, ename, deptno) values(:1, :2, :3)"; cmd.ExecuteNonQuery(); Console.WriteLine("Record for employee id {0} has been inserted.", maxno + 10); Console.WriteLine("Record for employee id {0} has been inserted.", maxno + 11); prm[0].Dispose(); prm[1].Dispose(); prm[2].Dispose(); cmd.Dispose(); con.Close(); con.Dispose(); } }
関連項目: |
このプロパティでは、配列バインドまたはPL/SQL連想配列の実行前または実行後における、Value
プロパティの各要素の入力または出力ステータスが指定されます。
宣言
// C# public OracleParameterStatus[] ArrayBindStatus { get; set; }
プロパティ値
OracleParameterStatus
の列挙値の配列
例外
ArgumentOutofRangeException
: 指定されたStatus
の値が無効です。
備考
デフォルト = null
ArrayBindStatus
は、配列バインドおよびPL/SQL連想配列の実行にのみ使用されます。
実行前は、ArrayBindStatus
により、Value
プロパティの各要素のバインド・ステータスが示されています。実行後は、Value
プロパティの各要素の実行ステータスが含まれます。
このプロパティは、OracleParameter
がコレクションを表すかどうかを指定し、コレクションを表す場合は、コレクション型を指定します。
宣言
// C# public OracleCollectionType CollectionType { get; set; }
プロパティ値
OracleCollectionType
の列挙値
例外
ArgumentException
: 指定されたOracleCollectionType
値が無効です。
備考
デフォルト = OracleCollectionType.None
PL/SQL連想配列のバインドにOracleParameter
が使用されている場合、CollectionType
は、OracleCollectionType.PLSQLAssociativeArray
に設定する必要があります。
このプロパティは、Data.DbType
の列挙型を使用して、パラメータのデータ型を指定します。
宣言
// ADO.NET 2.0: C# public override DbType DbType {get; set; }
プロパティ値
DbType
の列挙値
実装
IDataParameter
例外
ArgumentException
: 指定されたDbType
値が無効です。
備考
デフォルト = DbType.String
配列バインドまたはPL/SQL連想配列のバインド実行にOracleParameter
オブジェクトが使用されている場合、配列内の各要素のデータ型はDbType
です。
DbType
プロパティとOracleDbType
プロパティの間にリンクがあるため、DbType
プロパティが設定されている場合、OracleDbType
プロパティはDbType
から推論されます。
このプロパティは、パラメータが入力専用、出力専用、双方向またはストアド・ファンクションの戻り値パラメータであるかどうかを指定します。
宣言
// ADO.NET 2.0: C# public override ParameterDirection Direction { get; set; }
プロパティ値
ParameterDirection
の列挙値
実装
IDataParameter
例外
ArgumentOutOfRangeException
: 指定されたParameterDirection
の値が無効です。
備考
デフォルト = ParameterDirection.Input
可能な値:Input
、InputOutput
、Output
およびReturnValue
このプロパティは、サポートされていません。
宣言
// ADO.NET 2.0: C# public override bool IsNullable { get; set; }
実装
IDataParameter
プロパティ値
このプロパティは、サポートされていません。
このプロパティは、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
に変更されます。
このプロパティは、どのOracleデータ型としてパラメータをバインドするかを指定しますが、出力としては.NETタイプを戻します。
宣言
// C# public OracleDbType OracleDbTypeEx { get; set; }
プロパティ値
OracleDbType
の列挙値
備考
このプロパティは、パラメータ値をOracle型としてバインドする必要があるが、出力としては.NETタイプを戻す必要があるアプリケーションで使用されます。このプロパティは、出力パラメータまたは入力/出力パラメータで使用してください。入力パラメータでOracleDbTypeEx
を使用すると、OracleDbType
を使用した場合と同じ結果になります。出力として戻される.NETタイプは、Oracle型から厳密にマップされた.NETタイプです。
このプロパティは、パラメータの名前を指定します。
宣言
// ADO.NET 2.0: C# public override string ParameterName { get; set; }
プロパティ値
String
実装
IDataParameter
備考
デフォルト = null
最大30文字のParameterName
がサポートされています。
このプロパティは、Value
プロパティを表すのに使用される桁の最大数を指定します。
宣言
// C# Public byte Precision { get; set; }
プロパティ値
byte
備考
デフォルト = 0
Precision
プロパティは、OracleDbType.Decimal
型のパラメータで使用されます。
0
から38
の範囲のPrecision
がサポートされています。
配列バインドおよびPL/SQL連想配列バインドの場合、Precision
は、Value
プロパティの各要素に適用されます。
このプロパティは、Value
プロパティが解決される小数点以下の桁数を指定します。
宣言
// C# public byte Scale { get; set; }
プロパティ値
byte
備考
デフォルト = 0
Scale
は、OracleDbType.Decimal
型のパラメータで使用されます。
-84
から127
までのScale
がサポートされています。
配列バインドおよびPL/SQL連想配列バインドの場合、Scale
は、Value
プロパティの各要素に適用されます。
このプロパティは、データベースに送信する、またはデータベースから送信されるデータの最大サイズを、バイト数または文字数で指定します。
宣言
// ADO.NET 2.0: C# public override int Size { get; set;}
プロパティ値
int
例外
ArgumentOutOfRangeException
: 指定したSize
値が無効です。
InvalidOperationException
: OracleParameter
オブジェクトがPL/SQL連想配列のバインドに使用される場合は、Size
= 0になります。
備考
PL/SQL連想配列バインドの場合、Size
は、PL/SQL連想配列内の要素の最大数を指定します。
Size
が明示的に設定されていない場合は、入力パラメータに対するバインド時にのみ、指定されたパラメータ値の実際のサイズから推測されます。出力パラメータは、サイズが明示的に定義されている必要があります。
デフォルト値は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
が明示的に設定されていない場合は、バインド時に指定されたパラメータ値の実際のサイズから推測されます。
注意: Size には、文字列データのNULLで終了する文字は含まれません。 |
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
列の名前を指定します。
宣言
// ADO.NET 2.0: C# public override string SourceColumn { get; set; }
プロパティ値
string
実装
IDataParameter
備考
デフォルト = 空の文字列
このプロパティでは、ソース列にNULLを使用できるかどうかを示す値を指定します。
宣言
// ADO.NET 2.0: C# public bool SourceColumnNullMapping { get; set; }
プロパティ値
ソース列を無効にできる場合はtrue
を戻し、それ以外の場合はfalse
を戻します。
備考
デフォルト値はfalse
です。
このプロパティは、パラメータのValue
プロパティをロードするときに使用するDataRowVersion
値を指定します。
宣言
// ADO.NET 2.0: C# public override 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
プロパティが使用されます。
このプロパティでは、パラメータがユーザー定義のデータ型の場合、Oracleユーザー定義のタイプ名を指定します。
宣言
// C# public string UdtTypeName {get; set;}
プロパティ値
Oracle UDTの名前。
備考
UdtTypeName
プロパティはパラメータのユーザー定義のタイプ名に対応します。このプロパティは、パラメータがユーザー定義のタイプは必ず指定される必要があります。カスタム・オブジェクトが入力パラメータ値として提供される場合、コマンドの実行に使用する接続のカスタム・タイプ・マッピングで指定されたOracle UDTに変換されることに注意してください。アプリケーションがパラメータ・タイプのサブタイプを表すカスタム・オブジェクトをバインドする場合、カスタム・タイプ・マッピングで指定されたOracle UDTとOracleParamter.UdtTypeName
プロパティで指定されたOracle UDTは異なります。
このプロパティは、Parameter
の値を指定します。
宣言
// ADO.NET 2.0: C# public override object Value { get; set; }
プロパティ値
object
実装
IDataParameter
例外
ArgumentException
: 指定したValue
プロパティが無効です。
InvalidArgumentException
: 指定したValue
プロパティが無効です。
備考
デフォルト = null
OracleParameter
オブジェクトが配列バインドまたはPL/SQL連想配列に使用される場合、Value
は、パラメータ値の配列になります。
Value
プロパティは、OracleDataAdapter.Update()
によって上書きできます。
IConvertible
インタフェースをサポートしている場合、プロバイダは、値の型を変換しようとします。指定した型と値に互換性がない場合、変換エラーが発生します。
データベースにnull
パラメータ値を送信する場合、ユーザーは、null
ではなくDBNull
を指定する必要があります。システム内のnull
値は、値を持たない空のオブジェクトです。DBNull
は、null
値を表すのに使用されます。ユーザーは、Status
をOracleParameterStatus.NullValue
に設定して、null
値を指定することもできます。この場合、プロバイダはデータベースにnull
値を送信します。
OracleDbType
およびDbType
のいずれも設定されていない場合、値はValue
から推測されます。関連情報は、次の項目を参照してください。
入力パラメータの場合、値は次のようになります。
データベースに送信されるOracleCommand
にバインドされます。
プロバイダがデータをデータベースに送信するときに、OracleDbType
またはDbType
で指定されたデータ型に変換されます。
出力パラメータの場合、値は次のようになります。
OracleCommand
の完了時に設定されます(戻り値パラメータの場合にも当てはまります)。
データベースからのデータに対して、OracleDbType
またはDbType
で指定されたデータ型に設定されます。
配列バインディングは、次のパラメータとともに使用します。
入力パラメータ: Value
は、値の配列に設定する必要があります。バインドされる要素の数を示すために、OracleCommand.ArrayBindCount
をゼロより大きい値に設定する必要があります。
配列内の要素の数は、OracleCommand.ArrayBindCount
プロパティと同じである必要があります。同じでない場合、配列内の要素のバインドには、要素の最小値が使用されます。
出力パラメータ: 取得される要素の数を示すために、OracleCommand.ArrayBindCount
をゼロより大きい値に設定する必要があります(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
パブリック・メソッドを、表5-80にリストします。
表5-80 OracleParameterパブリック・メソッド
パブリック・メソッド | 説明 |
---|---|
|
|
|
|
|
割り当てられたリソースを解除します |
|
|
|
|
|
|
|
|
|
|
|
パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。 ADO.NET 2.0準拠のODP.NETでのみサポートされています。 |
|
パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。 ADO.NET 2.0準拠のODP.NETでのみサポートされています。 |
|
|
このメソッドでは、OracleParameter
オブジェクトのシャロー・コピーが作成されます。
宣言
// C# public object Clone();
戻り値
OracleParameter
オブジェクト
実装
ICloneable
備考
複製されたオブジェクトのプロパティ値は、複製元のオブジェクトのプロパティ値と同じです。
例
// C# using System; using System.Data; using Oracle.DataAccess.Client; class CloneSample { static void Main() { OracleParameter prm1 = new OracleParameter(); // Prints "prm1.ParameterName = " Console.WriteLine("prm1.ParameterName = " + prm1.ParameterName); // Set the ParameterName before cloning prm1.ParameterName = "MyParam"; // Clone the OracleParameter OracleParameter prm2 = (OracleParameter) prm1.Clone(); // Prints "prm2.ParameterName = MyParam" Console.WriteLine("prm2.ParameterName = " + prm2.ParameterName); prm1.Dispose(); prm2.Dispose(); } }
このメソッドでは、OracleParameter
オブジェクトに割り当てられたリソースが解除されます。
宣言
// C# public void Dispose();
実装
IDisposable
このメソッドでは、パラメータに渡される値からタイプを推測するために、パラメータに関連付けられたタイプをリセットします。
宣言
// ADO.NET 2.0: C# public override void ResetDbType();
備考
アプリケーションがOracleParameter
オブジェクトのDbType
またはOracleDbType
プロパティを設定していない場合、これらの値はアプリケーションがOracleParameter
オブジェクトに設定した値から推測されます。ResetDbType
メソッドをコールするとこれらのプロパティはリセットされるため、OracleParameter
はOracleParameter
に渡される値から再度そのタイプを推測できます。このメソッドをコールすると、OracleParameter
オブジェクトのDbType
およびOracleDbType
プロパティの両方に影響します。
このメソッドでは、パラメータに渡される値からタイプを推測するために、パラメータに関連付けられたタイプをリセットします。
宣言
// ADO.NET 2.0: C# public override void ResetOracleDbType();
備考
アプリケーションがOracleParameter
オブジェクトのDbType
またはOracleDbType
プロパティを設定していない場合、これらの値はアプリケーションがOracleParameter
オブジェクトに設定した値から推測されます。ResetOracleDbType
メソッドをコールするとこれらのプロパティはリセットされるため、OracleParameter
はOracleParameter
に渡される値から再度そのタイプを推測できます。このメソッドをコールすると、OracleParameter
オブジェクトのDbType
およびOracleDbType
プロパティの両方に影響します。