ヘッダーをスキップ
Oracle® Data Provider for .NET開発者ガイド
11g リリース2 (11.2.0.4)
B66456-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

スレッド安全性

パブリック静的メソッドはスレッドセーフですが、インスタンス・メソッドではスレッド安全性は保証されません。

例外

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

ODP.NETのバージョン: ODP.NET for .NET Framework 2.0またはODP.NET for .NET Framework 4


OracleParameterメンバー

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

OracleParameterコンストラクタ

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

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

コンストラクタ 説明

OracleParameterコンストラクタ

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


OracleParameter静的メソッド

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

表5-75 OracleParameter静的メソッド

メソッド 説明

Equals

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


OracleParameterプロパティ

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

表5-76 OracleParameterプロパティ

プロパティ 説明

ArrayBindSize

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

ArrayBindStatus

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

CollectionType


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

DbType

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

Direction

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

IsNullable


サポート対象外

Offset

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

OracleDbType

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

OracleDbTypeEx


どのOracleデータ型としてパラメータをバインドするかを指定しますが、出力としては.NETタイプを戻します

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-77にリストします。

表5-77 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();

備考

デフォルト値:

  • DbType - String

  • ParameterDirection - Input

  • isNullable - true

  • offset - 0

  • OracleDbType - Varchar2

  • ParameterAlias - 空の文字列

  • ParameterName - 空の文字列

  • Precision - 0

  • Size - 0

  • SourceColumn - 空の文字列

  • SourceVersion - Current

  • ArrayBindStatus - Success

  • Value - null

OracleParameter(string, OracleDbType)

このコンストラクタでは、指定されたパラメータ名および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(string, object)

このコンストラクタでは、指定されたパラメータ名およびパラメータ値を使用して、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(string, OracleDbType, ParameterDirection)

このコンストラクタでは、指定されたパラメータ名、データ型およびパラメータ・ディレクションを使用して、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(string, OracleDbType, object, ParameterDirection)

このコンストラクタでは、指定されたパラメータ名、データ型、値およびディレクションを使用して、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(string, OracleDbType, int)

このコンストラクタでは、指定されたパラメータ名、データ型およびサイズを使用して、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(string, OracleDbType, int, string)

このコンストラクタでは、指定されたパラメータ名、データ型、サイズおよびソース列を使用して、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

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);

パラメータ

  • parameterName

    パラメータ名

  • oraType

    OracleParameterのデータ型

  • size

    OracleParameter値のサイズ

  • direction

    ParameterDirection

  • isNullable

    パラメータ値をnullにできるかどうかを指定するインジケータ

  • precision

    パラメータ値の精度

  • scale

    パラメータ値のスケール

  • srcColumn

    ソース列の名前

  • srcVersion

    DataRowVersion

  • obj

    パラメータ値

例外

ArgumentException - 指定された値は、OracleTypeValueプロパティのタイプに属しません。

備考

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

デフォルト値:

  • DbType - String

  • ParameterDirection - Input

  • isNullable - true

  • offset - 0

  • OracleDbType - Varchar2

  • ParameterAlias - 空の文字列

  • ParameterName - 空の文字列

  • Precision - 0

  • Size - 0

  • SourceColumn - 空の文字列

  • SourceVersion - Current

  • ArrayBindStatus - Success

  • Value - null

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

このコンストラクタでは、指定されたパラメータ名、データ型、サイズ、値およびディレクションを使用して、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静的メソッド

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

表5-78 OracleParameter静的メソッド

メソッド 説明

Equals

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



OracleParameterプロパティ

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

表5-79 OracleParameterプロパティ

プロパティ 説明

ArrayBindSize

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

ArrayBindStatus

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

CollectionType


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

DbType

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

Direction

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

IsNullable


サポート対象外

Offset

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

OracleDbType

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

OracleDbTypeEx


どのOracleデータ型としてパラメータをバインドするかを指定しますが、出力としては.NETタイプを戻します

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.None。PL/SQL連想配列のバインドにOracleParameterが使用されている場合、CollectionTypeは、OracleCollectionType.PLSQLAssociativeArrayに設定する必要があります。

DbType

このプロパティは、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から推論されます。

Direction

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

宣言

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

プロパティ値

ParameterDirectionの列挙値

実装

IDataParameter

例外

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

備考

デフォルト = ParameterDirection.Input

可能な値:InputInputOutputOutputおよびReturnValue

IsNullable

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

宣言

// ADO.NET 2.0: C#
public override 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.BFile

  • OracleDbType.Blob

  • OracleDbType.LongRaw

  • OracleDbType.Raw

  • OracleDbType.Char

  • OracleDbType.Clob

  • OracleDbType.NClob

  • OracleDbType.NChar

  • OracleDbType.NVarchar2

  • OracleDbType.Varchar2

OracleDbType

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

宣言

// C#
public OracleDbType OracleDbType { get; set; }

プロパティ値

OracleDbTypeの列挙値

備考

デフォルト = OracleDbType.Varchar2

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

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

OracleDbTypeEx

このプロパティは、どのOracleデータ型としてパラメータをバインドするかを指定しますが、出力としては.NETタイプを戻します。

宣言

// C#
public OracleDbType OracleDbTypeEx { get; set; }

プロパティ値

OracleDbTypeの列挙値

備考

このプロパティは、パラメータ値をOracle型としてバインドする必要があるが、出力としては.NETタイプを戻す必要があるアプリケーションで使用されます。このプロパティは、出力パラメータまたは入力/出力パラメータで使用してください。入力パラメータでOracleDbTypeExを使用すると、OracleDbTypeを使用した場合と同じ結果になります。出力として戻される.NETタイプは、Oracle型から厳密にマップされた.NETタイプです。

ParameterName

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

宣言

// ADO.NET 2.0: C#
public override 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;}

プロパティ値

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

SourceColumn

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

宣言

// ADO.NET 2.0: C#
public override 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; }

プロパティ値

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が示す内容は、次のとおりです。

  • 列からNULLがフェッチされたかどうか。

  • フェッチ中に切捨てが発生したかどうか。切捨てが発生した場合、Valueがデータを保持するには不足していることを示します。

  • NULLがデータベース列に挿入されるかどうか。挿入される場合、Valueは無視され、NULLがデータベース列に挿入されます。

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

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; }

プロパティ値

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から推測されます。関連情報は、次の項目を参照してください。

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

  • データベースに送信されるOracleCommandにバインドされます。

  • プロバイダがデータをデータベースに送信するときに、OracleDbTypeまたはDbTypeで指定されたデータ型に変換されます。

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

  • OracleCommandの完了時に設定されます(戻り値パラメータの場合にも当てはまります)。

  • データベースからのデータに対して、OracleDbTypeまたはDbTypeで指定されたデータ型に設定されます。

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

  • 入力パラメータ - Valueは、値の配列に設定する必要があります。バインドされる要素の数を示すために、OracleCommand.ArrayBindCountをゼロより大きい値に設定する必要があります。

    配列内の要素の数は、OracleCommand.ArrayBindCountプロパティと同じである必要があります。同じでない場合、配列内の要素のバインドには、要素の最小値が使用されます。

  • 出力パラメータ - 取得される要素の数を示すために、OracleCommand.ArrayBindCountをゼロより大きい値に設定する必要があります(SELECT文の場合)。

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

  • 入力パラメータ - Valueは、値の配列に設定する必要があります。CollectionTypeは、OracleCollection.PLSQLAssociativeArrayに設定する必要があります。Sizeを設定して、PL/SQL連想配列内で可能な配列要素の最大数を指定する必要があります。SizeValueの要素の数より少ない場合、Sizeは、バインドされるValueプロパティの要素の数を指定します。

  • 出力パラメータ - CollectionTypeは、OracleCollection.PLSQLAssociativeArrayに設定する必要があります。Sizeを設定して、PL/SQL連想配列内の配列要素の最大数を指定する必要があります。

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


OracleParameterパブリック・メソッド

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

表5-80 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プロパティの両方に影響します。