OracleのLONG ROW型を取得してファイルへ保存する方法です。
ここでの説明に利用しているテーブルは以下のような簡単なテーブルです。
create table TEST
(
ID NUMBER(10) not null,
LONGROW LONG RAW
)
また、LONGROWフィールドには、拡張子XLS(Excelファイル)が格納されているのを前提とします。
System.Data.OracleClientの参照設定してください。
Imports System.Data.OracleClient
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
Dim oraBuilder As New OracleConnectionStringBuilder
''ORACLE接続文字列
With oraBuilder
.DataSource = "DataSource"
.UserID = "UserId"
.Password = "Password"
End With
Try
Using oraConn As OracleConnection = New OracleConnection(oraBuilder.ConnectionString)
Using oraCmd As New OracleCommand("SELECT * FROM TEST WHERE ID = 1", oraConn)
oraConn.Open()
Using oraDr As OracleDataReader = oraCmd.ExecuteReader
If oraDr.Read Then
If Not IsDBNull(oraDr(1)) Then
''LONG ROWを取得
Dim row As OracleBinary = oraDr.GetOracleBinary(1)
''ファイルに保存
My.Computer.FileSystem.WriteAllBytes("C:\TEST.XLS", row.Value, True)
End If
End If
End Using
End Using
End Using
Catch ex As OracleException
MessageBox.Show(ex.Message, "ORACLE例外", MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch ex As Exception
MessageBox.Show(ex.Message, "一般例外", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
MessageBox.Show("処理完了")
End Sub
End Class