プログラム言語:VB.NET
DB:Oracle11g
以下の通りプログラムを改修する必要があるのですが、そもそも可能なのかすらわからず解決できていません。
VB.NET側の記述方法とPL/SQL(Procedure)側の記述方法についてご教授いただけますでしょうか。
【現在】
VB.NETのロジック上でSQL文(SELECT)をべた書き(文字列型)で作成し、
OracleConnectionとOracleAdapterを使用してOracleDBからデータを取得。
DataTable型として受け取る
【改修後】
VB.NETのロジックからPL/SQL(Procedure)を呼び出し上記と同じSELECTを行う。
OracleConnectionとOracleAdapterを使用してOracleDBからデータを取得。
DataTable型として受け取る
【わかっている範囲】
VB.NETからPL/SQLを呼び出す方法は判明しています。
また、そのPL/SQLからString型でデータを取得する方法もわかっています。
DataTable型で受け取る方法がわかっておりません。
【現在のソース】
Public Function GetEmpName(ByVal empNo As String) As DataTable Dim SQL As StringBuilder Dim tableName As String = String.Empty Dim connect As Global.Oracle.DataAccess.Client.OracleConnection = Nothing Dim adapt As Global.Oracle.DataAccess.Client.OracleDataAdapter Dim ds As DataSet = Nothing GetEmpName = Nothing tableName = "TEMP_TABLE_NAME" '接続設定(ここは改修後も変わりないとおもっています) connect = New Global.Oracle.DataAccess.Client.OracleConnection() connect.ConnectionString = Global.DataAccess.My.MySetting.Default.ConnectionString connect.Open() adapt = New Global.Oracle.DataAccess.Client.OracleDataAdapter() adapt.SelectCommand = New Oracle.DataAccess.Client.OracleCommand() adapt.SelectCommand.Connection = connect ds = New DataSet SQL.Clear() SQL.AppendLine("SELECT") SQL.AppendLine("EMP_NO") SQL.AppendLine(",EMP_NAME") SQL.AppendLine("FROM EMP_TABLE") SQL.AppendLine("WHERE EMP_NO = '"& empNo & "'") adapt.SelectCommand.CommandText = SQL.ToString() adapt.Fill(ds,tableName) GetEmpName = ds.Tables(tableName) End Function
以上です。よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。