我需要从VBA连接到远程Oracle服务器。我不想安装任何其他驱动程序或软件来连接,因为我需要将Excel分发给团队。
我尝试了几个连接字符串,给出了SQL_HANDLE_ENV failed
之类的错误。或Oracle client and networking components not found.
或使用OraOLEDB.Oracle
时,我找不到提供商。
到目前为止尝试了连接字符串:
"Driver={Microsoft ODBC for Oracle}; CONNECTSTRING=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=servicename))); uid=username; pwd=Password;"
"PROVIDER=MSDAORA.Oracle;DATA SOURCE=hostname;USER ID=username;PASSWORD=Password"
"PROVIDER=MSDAORA;DATA SOURCE=hostname;USER ID=username;PASSWORD=Password"
"Driver={Oracle in OraClient11g_home1};Dbq=servicename;Uid=username;Pwd=Password;"
"Provider=OraOLEDB.Oracle;Data Source=hostname;User Id=username;Password=Password;"
我想在Windows中有一些预先定义的驱动程序。但它对甲骨文不起作用吗?我使用Windows 8 任何帮助非常感谢..
我做了一些研究并遇到了ODP.net。所以我认为结论要么使用Oracle Instant Client,要么使用ODP.net。但我不确定是否有像ODP.net这样的.net应用程序可以在没有.Net框架的情况下运行。如果有人遇到这个,请告诉我。
答案 0 :(得分:1)
几乎每个提供商都需要安装Oracle客户端。例外是JDBC
,它是Java,在VBA / Excel和ODP.NET Mananged Driver中不起作用。但是,ODP.NET Mananged Driver是一个.NET程序集,它们不能与VBA / Excel中使用的COM一起使用。你必须为它编写自己的包装器。
.NET框架是每个Windows安装的一部分,应该没有任何问题。
顺便说一句,您是否已将Microsoft ActiveX Data Objects ...
的参考添加到VBA项目中?
看起来您无法通过Oracle Instant Client。
答案 1 :(得分:0)
试试这个:
Provider=MSDAORA.1;Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER0123)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = PRODDB)));User Id=USER_ID;Password=USER_ID_PASSWORD
显然你需要更换服务器,用户名和密码。