我正在尝试将带有数据类型clob的oracle字段检索到VB数组中,而不重新格式化检索SQL字符串(只需SELECT * FROM my_table)。我正在使用ADO记录集。
当我关闭连接或对记录集执行任何其他操作时,clob值将丢失。我怎样才能做到这一点。
答案 0 :(得分:3)
在我的一个项目中,我尝试使用ADO操作BLOB和CLOB,但没有任何成功,直到我切换到Oracle Objects 4 OLE。您需要在计算机上安装和配置Oracle客户端,在项目引用中添加“Oracle InProc Server 4.0类型库”。
以下是我用于BLOB的示例代码:
Dim OraSession As OracleInProcServer.OraSessionClass
Dim OraDatabase As OracleInProcServer.OraDatabase
Dim OraDynaset As OracleInProcServer.OraDynaset
Dim srcImg As OraBlob
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
Set OraDatabase = OraSession.DbOpenDatabase("myDBName", "login/password", 0&)
Set OraDynaset = OraDatabase.DbCreateDynaset("SELECT src_id, src_image from Sources where src_file_name like '%.png'", 0&)
With OraDynaset
If .RecordCount > 0 Then
.MoveFirst
While (Not .EOF Or .BOF)
Set srcImg = .Fields("src_image").Value
srcImg.CopyToFile ("C:\sources\" & srcID & ".png")
.MoveNext
Wend
End If
End With
Set OraDynaset = Nothing
Set OraDatabase = Nothing
Set OraSession = Nothing