ヘッダーをスキップ
Oracle Data Provider for .NET開発者ガイド
11gリリース1(11.1.0.6.20)
E06104-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

OracleParameterクラス

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
// ADO.NET 1.x: C#
public sealed class OracleParameter : MarshalByRefObject, IDBDataParameter, 
   IDataParameter, 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バージョン1.0以降


OracleParameterメンバー

OracleParameterメンバーは、次の各表にリストしています。

OracleParameterコンストラクタ

OracleParameterコンストラクタを、表5-69にリストします。

表5-69 OracleParameterコンストラクタ

コンストラクタ 説明

OracleParameterコンストラクタ

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


OracleParameter静的メソッド

OracleParameter静的メソッドを、表5-70にリストします。

表5-70 OracleParameter静的メソッド

メソッド 説明

Equals

System.Objectからの継承(オーバーロード)


OracleParameterプロパティ

OracleParameterプロパティを、表5-71にリストします。

表5-71 OracleParameterプロパティ

プロパティ 説明

ArrayBindSize

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

ArrayBindStatus

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

CollectionType


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

DbType

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

Direction

パラメータが入力のみ、出力のみ、双方向またはストアド・ファンクションの戻り値パラメータかどうかを指定します

IsNullable


サポート対象外

Offset

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

OracleDbType

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

ParameterName

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

Precision

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

Scale

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

Size

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

SourceColumn

DataSetDataTable列の名前を指定します

SourceColumnNullMapping


ソース列にNULLを使用できるかどうかを示す値を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

SourceVersion

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

Status

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

UdtTypeName


パラメータがユーザー定義のデータ型の場合、Oracleユーザー定義のタイプ名を指定します

Value


Parameterの値を指定します


OracleParameterパブリック・メソッド

OracleParameterパブリック・メソッドを、表5-72にリストします。

表5-72 OracleParameterパブリック・メソッド

パブリック・メソッド 説明

Clone

OracleParameterオブジェクトのシャロー・コピーを作成します

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose


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

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

ResetDbType


パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ResetOracleDbType


パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ToString

System.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静的メソッド

OracleParameter静的メソッドを、表5-73にリストします。

表5-73 OracleParameter静的メソッド

メソッド 説明

Equals

System.Objectからの継承(オーバーロード)



OracleParameterプロパティ

OracleParameterプロパティを、表5-74にリストします。

表5-74 OracleParameterプロパティ

プロパティ 説明

ArrayBindSize

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

ArrayBindStatus

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

CollectionType


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

DbType

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

Direction

パラメータが入力のみ、出力のみ、双方向またはストアド・ファンクションの戻り値パラメータかどうかを指定します

IsNullable


サポート対象外

Offset

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

OracleDbType

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

ParameterName

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

Precision

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

Scale

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

Size

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

SourceColumn

DataSetDataTable列の名前を指定します

SourceColumnNullMapping


ソース列にNULLを使用できるかどうかを示す値を指定します。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

SourceVersion

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

Status

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

UdtTypeName


パラメータがユーザー定義のデータ型の場合、Oracleユーザー定義のタイプ名を指定します

Value


Parameterの値を指定します


ArrayBindSize

このプロパティは、データベースに送信する、またはデータベースから送信される、各配列要素のデータの最大サイズを、バイト数または文字数で指定します。このプロパティは、配列バインドまたはPL/SQL連想配列の実行に使用されます。

宣言

// C#
public int[] ArrayBindSize {get; set; }

プロパティ値

サイズを指定する整数の配列

備考

デフォルト = null

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

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

PL/SQL連想配列のバインドの場合、要素は可変長の要素タイプであり、このプロパティはInputOutputOut、または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();
  }
}

ArrayBindStatus

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

宣言

// C#
public OracleParameterStatus[] ArrayBindStatus { get; set; }

プロパティ値

OracleParameterStatusの列挙値の配列

例外

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

備考

デフォルト = null

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

実行前は、ArrayBindStatusにより、Valueプロパティの各要素のバインド・ステータスが示されています。実行後は、Valueプロパティの各要素の実行ステータスが含まれます。

CollectionType

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

宣言

// C#
public OracleCollectionType CollectionType { get; set; }

プロパティ値

OracleCollectionTypeの列挙値

例外

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

備考

デフォルト = OracleCollectionType.NonePL/SQL連想配列のバインドにOracleParameterが使用されている場合、CollectionTypeは、OracleCollectionType.PLSQLAssociativeArrayに設定する必要があります。

DbType

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

宣言

// ADO.NET 2.0: C#
public override DbType DbType {get; set; }
// ADO.NET 1.x: C#
public DbType DbType {get; set; }

プロパティ値

DbTypeの列挙値

実装

IDataParameter

例外

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

備考

デフォルト = DbType.String

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

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

Direction

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

宣言

// ADO.NET 2.0: C#
public override ParameterDirection Direction { get; set; }
// ADO.NET 1.x: C#
public ParameterDirection Direction { get; set; }

プロパティ値

ParameterDirectionの列挙値

実装

IDataParameter

例外

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

備考

デフォルト = ParameterDirection.Input

可能な値:InputInputOutputOutputおよびReturnValue

IsNullable

このプロパティは、サポートされていません。

宣言

// ADO.NET 2.0: C#
public override bool IsNullable { get; set; }
// ADO.NET 1.x: C#
public bool IsNullable { get; set; }

実装

IDataParameter

プロパティ値

このプロパティは、サポートされていません。

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

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

宣言

// ADO.NET 2.0: C#
public override string ParameterName { get; set; }
// ADO.NET 1.x: C#
public string ParameterName { get; set; }

プロパティ値

String

実装

IDataParameter

備考

デフォルト = null

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

Precision

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

宣言

// C#
Public byte Precision { get; set; }

プロパティ値

byte

備考

デフォルト = 0

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

0から38の範囲のPrecisionがサポートされています。

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

Scale

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

宣言

// C#
public byte Scale { get; set; }

プロパティ値

byte

備考

デフォルト = 0

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

-84から127までのScaleがサポートされています。

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

Size

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

宣言

// ADO.NET 2.0: C#
public override int Size { get; set;}
// ADO.NET 1.x: C#
public int Size { get; set;}

プロパティ値

int

例外

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

InvalidOperationException: OracleParameterオブジェクトがPL/SQL連想配列のバインドに使用される場合は、Size = 0になります。

備考

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

Sizeが明示的に設定されていない場合は、入力パラメータに対するバインド時にのみ、指定されたパラメータ値の実際のサイズから推測されます。出力パラメータは、サイズが明示的に定義されている必要があります。

デフォルト値は0です。

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

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連想配列のバインドに使用される場合、Size0に設定することはできません。

SourceColumn

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

宣言

// ADO.NET 2.0: C#
public override string SourceColumn { get; set; }
// ADO.NET 1.x: C#
public string SourceColumn { get; set; }

プロパティ値

string

実装

IDataParameter

備考

デフォルト = 空の文字列

SourceColumnNullMapping

このプロパティでは、ソース列にNULLを使用できるかどうかを示す値を指定します。

宣言

// ADO.NET 2.0: C#
public bool SourceColumnNullMapping { get; set; }

プロパティ値

ソース列を無効にできる場合はtrueを戻し、それ以外の場合はfalseを戻します。

備考

デフォルト値はfalseです。

SourceVersion

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

宣言

// ADO.NET 2.0: C#
public override DataRowVersion SourceVersion { get; set; }
// ADO.NET 1.x: C#
public DataRowVersion SourceVersion { get; set; }

プロパティ値

DataRowVersion

実装

IDataParameter

例外

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

備考

デフォルト = DataRowVersion.Current

SourceVersionOracleDataAdapter.Update中にOracleDataAdapter.UpdateCommand()で使用され、パラメータ値に元の値または現行の値が使用されるかどうかを決定します。これにより、主キーの更新が可能になります。このプロパティは、OracleDataAdapter.InsertCommand()およびOracleDataAdapter.DeleteCommand()では無視されます。

Status

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

宣言

// C#
public OracleParameterStatus Status { get; set; }

プロパティ値

OracleParameterStatusの列挙値

例外

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

備考

デフォルト = OracleParameterStatus.Success

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

Statusが示す内容は、次のとおりです。

UdtTypeName

このプロパティでは、パラメータがユーザー定義のデータ型の場合、Oracleユーザー定義のタイプ名を指定します。

宣言

// C#
public string UdtTypeName {get; set;}

プロパティ値

Oracle UDTの名前。

備考

UdtTypeNameプロパティはパラメータのユーザー定義のタイプ名に対応します。このプロパティは、パラメータがユーザー定義のタイプは必ず指定される必要があります。カスタム・オブジェクトが入力パラメータ値として提供される場合、コマンドの実行に使用する接続のカスタム・タイプ・マッピングで指定されたOracle UDTに変換されることに注意してください。アプリケーションがパラメータ・タイプのサブタイプを表すカスタム・オブジェクトをバインドする場合、カスタム・タイプ・マッピングで指定されたOracle UDTとOracleParamter.UdtTypeNameプロパティで指定されたOracle UDTは異なります。

Value

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

宣言

// ADO.NET 2.0: C#
public override object Value { get; set; }
// ADO.NET 1.x: C#
public 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値を表すのに使用されます。ユーザーは、StatusOracleParameterStatus.NullValueに設定して、null値を指定することもできます。この場合、プロバイダはデータベースにnull値を送信します。

OracleDbTypeおよびDbTypeのいずれも設定されていない場合、値はValueから推測されます。関連情報は、次の項目を参照してください。

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

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

配列バインディングは、次のパラメータとともに使用します。

PL/SQL連想配列バインディングは、次のパラメータとともに使用します。

各パラメータには、1つの値が必要です。null値を使用してパラメータをバインドするには、ValueDBNull.Valueに設定するか、StatusOracleParameterStatus.NullInsertに設定します。


OracleParameterパブリック・メソッド

OracleParameterパブリック・メソッドを、表5-75にリストします。

表5-75 OracleParameterパブリック・メソッド

パブリック・メソッド 説明

Clone

OracleParameterオブジェクトのシャロー・コピーを作成します

CreateObjRef

System.MarshalByRefObjectからの継承

Dispose


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

Equals

System.Objectからの継承(オーバーロード)

GetHashCode

System.Objectからの継承

GetLifetimeService

System.MarshalByRefObjectからの継承

GetType

System.Objectからの継承

InitializeLifetimeService

System.MarshalByRefObjectからの継承

ResetDbType


パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ResetOracleDbType


パラメータに関連付けられたタイプをリセットすると、パラメータに渡される値からタイプを推測できます。

ADO.NET 2.0準拠のODP.NETでのみサポートされています。

ToString

System.Objectからの継承(オーバーロード)


Clone

このメソッドでは、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();
  }
}

Dispose

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

宣言

// C#
public void Dispose();

実装

IDisposable

ResetDbType

このメソッドでは、パラメータに渡される値からタイプを推測するために、パラメータに関連付けられたタイプをリセットします。

宣言

// ADO.NET 2.0: C#
public override void ResetDbType();

備考

アプリケーションがOracleParameterオブジェクトのDbTypeまたはOracleDbTypeプロパティを設定していない場合、これらの値はアプリケーションがOracleParameterオブジェクトに設定した値から推測されます。ResetDbTypeメソッドをコールするとこれらのプロパティはリセットされるため、OracleParameterOracleParameterに渡される値から再度そのタイプを推測できます。このメソッドをコールすると、OracleParameterオブジェクトのDbTypeおよびOracleDbTypeプロパティの両方に影響します。

ResetOracleDbType

このメソッドでは、パラメータに渡される値からタイプを推測するために、パラメータに関連付けられたタイプをリセットします。

宣言

// ADO.NET 2.0: C#
public override void ResetOracleDbType();

備考

アプリケーションがOracleParameterオブジェクトのDbTypeまたはOracleDbTypeプロパティを設定していない場合、これらの値はアプリケーションがOracleParameterオブジェクトに設定した値から推測されます。ResetOracleDbTypeメソッドをコールするとこれらのプロパティはリセットされるため、OracleParameterOracleParameterに渡される値から再度そのタイプを推測できます。このメソッドをコールすると、OracleParameterオブジェクトのDbTypeおよびOracleDbTypeプロパティの両方に影響します。