我正在尝试将数据类型为 clob 的 oracle 字段检索到 VB 数组中,而无需重新格式化检索 SQL 字符串(只需 SELECT * FROM my_table)。我正在使用 ADO 记录集。
当我关闭连接或对记录集执行任何其他操作时,clob 值会丢失。我怎样才能做到这一点。
在我的一个项目中,我尝试使用 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