用于连接远程Oracle 11g的连接字符串

时间:2015-11-17 14:36:13

标签: excel oracle vba excel-vba oracle11g

我需要从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框架的情况下运行。如果有人遇到这个,请告诉我。

2 个答案:

答案 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项目中?

enter image description here

看起来您无法通过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

显然你需要更换服务器,用户名和密码。