データベース

[C#] Oracleストアドプロシージャを実行する

2021年8月13日

Oracleストアドプロシージャを実行するサンプルです。
INパラメータとOUTパラメータを1つづつ使用しています。

サンプル

例)PROCEDURE「TEST_PROC(p1 IN NUMBER, p2 OUT VARCHAR2)」を実行する

using System;
using System.Data;
using System.Data.Common;
using Oracle.ManagedDataAccess.Client;

//接続文字列
string connStr = "user id=XXX; password=XXX; data source=999.999.999.999:1521/ZZZ";

try
{
  //コネクションを生成する
  using (OracleConnection conn = new OracleConnection())
  {
    //コネクションを取得する
    conn.ConnectionString = connStr;
    conn.Open();

    //コマンドを生成する
    using (OracleCommand command = new OracleCommand())
    {
      //コネクションを設定
      command.Connection = conn;

      //コマンドタイプに「ストアド」を設定
      command.CommandType = CommandType.StoredProcedure;

      //ストアド名を設定
      command.CommandText = @"TEST_PROC";

      //パラメータ1(IN)をセットする
      command.Parameters.Add("p1", OracleDbType.Int16, ParameterDirection.Input).Value = 10;
 
      //パラメータ2(OUT)をセットする
      var pOut = command.Parameters.Add("p2", OracleDbType.Varchar2, ParameterDirection.Output);

      //ストアドを実行する
      command.ExecuteNonQuery();

      //OUTパラメータを取得する
      string a = pOut.Value;
    }

    //コネクションを切断する
    conn.Close();

    //コネクションを破棄する
    conn.Dispose();
  }
}
catch (Exception ex)
{
  //エラー時はエラー内容をコンソールに出力する
  Console.WriteLine(ex);
}

備考

  • 事前にVisualStudioにOracleのドライバー「Oracle.ManagedDataAccess」をインストールして参照設定をしておいてください。(以下、関連記事をご覧ください。)
  • 7行目の接続情報は以下記事を参考に、お使いの環境に書き換えてください。
    [C#] DBコネクション接続文字列のパラメータ一覧

関連記事

-データベース