在Oracle中支持的数据types,但不在Excel VBA中
我写了一个连接到Oracle的excel vba,并从表中检索随机的'n'logging。 查询是在Oracle工作,但是当我执行vba,我得到一个错误消息“数据types不支持。运行时错误-2147467259(80004005)”
然后在我的vba代码中,我删除了数据types= Timestamp的列。 vba工作并检索logging。
我可以在我的vba查询中使用转换,但表名是dynamic的,列数与每个表不同,因此我只能使用“Select * from”。 你能帮我解决这个问题吗?
以下是使用的查询。 由于表具有时间戳列,因此不起作用
sqlText = " SELECT * FROM " & tablename & " WHERE rownum < " & countx
下面的查询工作,因为我查询数据types字符的列名称。
sqlText = " SELECT name FROM employee " WHERE rownum < " & countx
我正在使用ADO 2.8,以下是我的连接string
conn.Open "PROVIDER=MSDAORA.Oracle;DATA SOURCE=" & Server & ";" & "USER ID=" & UID & ";PASSWORD=" & PWD
谢谢,Dhanabalan
用于Oracle的Microsoft OLE DB提供程序已被弃用多年,它不支持Oracle数据typesTIMESTAMP
。 据我记忆,在Oracle 8i停止开发。
您必须使用OLE DB的Oracle提供程序,如果没有安装,您可以从这里下载: Oracle Data Access Components(ODAC)for Windows下载
连接string然后必须是这样的:
"PROVIDER=OraOLEDB.Oracle;DATA SOURCE=" & Server & ";" & "USER ID=" & UID & ";PASSWORD=" & PWD
您也可以尝试ODBC驱动程序。 情况是类似的,Mircosoft驱动程序已被弃用很久以前,你必须使用Oracle驱动程序。
连接string与此类似:
"Driver={Oracle in OraClient11g_home1};Uid=" & UID & ";Pwd=" & PWD & ";DBQ=" & Server;