VB.NET OracleストアドプロシージャのSELECT結果を取得する@

OracleのストアドプロシージャでSELECTした結果をVB.NETで取得する方法。
@ストアドプロシージャがカーソルを使っていないパターン

下記のようなストアドプロシージャがある場合

 PROCEDURE SAMPLE_PROCEDURE1(
    INPUT1 IN NUMBER,
    OUTPUT1 OUT NVARCHAR2
  ) AS
  BEGIN
    BEGIN
      SELECT
        NAME
      INTO
        OUTPUT1
      FROM
        EMPLOYEES
      WHERE
        ID = INPUT1;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        OUTPUT1 := '';
    END;
  END SAMPLE_PROCEDURE1;




それを取得するためのVB.NETコードは以下のようになる。
(Stringで返す)

 Dim connection As OracleConnection = New OracleConnection()
 Dim command As OracleCommand = New OracleCommand()

 'Oracleへのコネクションをオープンする
 connection = New OracleConnection()
 connection.ConnectionString = "XXX"
 connection.Open()
 command.Connection = connection

 'ストアドプロシージャをセットする
 command.CommandType = CommandType.StoredProcedure
 command.CommandText = "SAMPLE_PROCEDURE1"
 
 'ストアドプロシージャのパラメータをセットする
 Dim inPara1 As New OracleParameter("INPUT1", OracleDbType.Decimal, ParameterDirection.Input)
 inPara1.Value = 1
 Dim outPara1 As New OracleParameter("OUTPUT1", OracleDbType.NVarchar2, ParameterDirection.Output)
 outPara1.Size = 45 '出力パラメータのサイズ指定
 command.Parameters.Add(inPara1)
 command.Parameters.Add(outPara1)
 
 'ストアド実行
 command.ExecuteNonQuery()
 
 command.Parameters.Clear() '後で使うためにクリアする

 Return outPara1.Value.ToString()

 connection.Close()
 connection.Dispose()





posted by へっぽ at 10:16 | TrackBack(0) | VB.NET | このブログの読者になる | 更新情報をチェックする

この記事へのトラックバック