这似乎是一个非常基本的问题,但我无法找到任何解决方案。我不得不承认我对数据库的经验很少。我查看了THIS问题,但这对我没什么帮助。
问题:
每当我修改我的查询以从数据库中获取 CLOB 类型的数据时,我都会收到错误“Unspecified Error”。在下面的代码中,我编写了查询strQuery = "select CDATA from WR2_USR.router_xml_data where EVENT_ID= '987787454'"
。 CDATA列(数据类型 CLOB )包含一个Long XML,我需要将其提取并存储在变量中以供进一步使用。有没有办法实现这一目标?
代码:
Option Explicit
Dim objCon, objRs, strCon, strQuery, i, strServer, strUid, strPwd
set objCon = CreateObject("adodb.connection")
set objRs = CreateObject("adodb.recordset")
strServer = "" 'Contains the correct Server information
strUid = "" 'Contains the user name
strPwd = "" 'Contains the password
strCon = "Driver={Microsoft ODBC for Oracle};SERVER="&strServer&";uid="&strUid&";pwd="&strPwd &";"
strQuery = "select CDATA from WR2_USR.router_xml_data where EVENT_ID= '987787454'"
objCon.open strCon
if objCon.state=1 then
objRs.open strQuery, objCon '<--- GETTING ERROR HERE
while (not objRs.eof)
msgbox objRs.fields.count
for i=0 to objRs.fields.count-1 step 1
msgbox cstr(objRs.fields.item(i).value)
next
objRs.movenext
Wend
end if
set objCon = Nothing
set objRs = Nothing
错误:
列详细信息:
注意:如果我更改查询以获取其他列的数据(不是CLOB数据类型),则代码运行正常。
答案 0 :(得分:2)
Microsoft的Oracle ODBC驱动程序的年龄为deprecated:
完全支持Oracle 7.3x; Oracle8的支持有限。适用于Oracle的ODBC驱动程序不支持任何新的Oracle8数据类型 - Unicode数据类型, BLOB,CLOB等 - 它也不支持Oracle的新关系对象模型。
使用Oracle的ODBC驱动程序或OLE-DB提供程序,您可以从Oracle Data Access Components (ODAC) for Windows Downloads
下载然后连接字符串必须类似于:
' ODBC Driver from Oracle
strCon = "Driver={Oracle in OraClient11g_home1};DBQ=" & strServer & ";Pwd=" & strPwd & ";Uid=" & strUid
' OLE DB Provider from Oracle
strCon = "Provider=OraOLEDB.Oracle;Data Source=" & strServer & ";Password=" & strPwd & ";User ID=" & strUid