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コネクション接続文字列のパラメータ一覧