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

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

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

 PROCEDURE SAMPLE_PROCEDURE2(
   INPUT1 IN NUMBER,
   O_CURSOR_FOR_SAMPLE OUT REF_CURSOR
 ) AS
   BEGIN
     OPEN O_CURSOR_FOR_SAMPLE FOR
       SELECT
         ID,
         NAME,
         DEPARTMENT
       FROM
         EMPLOYEE
       WHERE
         ID = INPUT1;

   END SAMPLE_PROCEDURE;




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

 Dim connection As OracleConnection = New OracleConnection()
 Dim command As OracleCommand = New OracleCommand()
 DIm adapter As OracleDataAdapter = New OracleDataAdapter()

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

 'ストアドプロシージャをセットする
 command.CommandType = CommandType.StoredProcedure
 command.CommandText = "PROCEDURE_NAME"

 'ストプロのパラメータをセットする
 Dim inPara1 As New OracleParameter("INPUT1", OracleDbType.Decimal, ParameterDirection.Input)
 inPara1.Value = 1
 Dim outPara1 As New OracleParameter("out_CURSOR", OracleDbType.RefCursor, ParameterDirection.Output)
 command.Parameters.Add(inPara1)
 command.Parameters.Add(outPara1)
 
 'ストアド実行
 adapter = New OracleDataAdapter(command)
 Dim ds As New DataSet()
 adapter.Fill(ds)

 command.Parameters.Clear() '後で使うためにクリアする

 Return ds.Tables(0)

 connection.Close()
 connection.Dispose()
 adapter.Dispose()



posted by へっぽ at 12:34 | TrackBack(0) | VB.NET | このブログの読者になる | 更新情報をチェックする
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/433655602

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