在搜索示例代码时,我发现以下内容用于将oracle数据库中的数据获取到excel中。当我使用TNSNAME.ORA文件时,我以前可以进行此工作。我们不再使用它,而转向LDAP和jdbc连接。我对db SID进行了tnsping操作以获得连接字符串。
我已经安装了Oracle Client 11.2.0.3 64位11.2.0.3 我已经安装了Microsoft ActiveX数据对象6.1库。
运行代码时,出现错误,指出未找到Oracvle(tm)客户端和网络组件,并在下面描述了另一个运行时错误。
我尝试重新安装oracle客户端。
Sub Ora_Connection()
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Dim query As String
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
strCon = "Driver={Microsoft ODBC for Oracle}; " & _
"(DESCRIPTION= " & _
"(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=rac01-scan.xxxx.net)(PORT=1531))" & _
"(LOAD_BALANCE=YES)" & _
"(CONNECT_DATA=(UR=A)(SERVER=DEDICATED)" & _
"(SERVICE_NAME=xxxx.xxxx)" & _
"(FAILOVER_MODE=(BACKUP=xxxx)" & _
"(TYPE=SELECT)(METHOD=PRECONNECT)(RETRIES=180)(DELAY=5))));" & _
"uid=xxxxxx; pwd=xxxxxx;"
con.Open (strCon)
rsRecordset.MaxRecords = 1048575
Set rsRecordset = rsConnection.Execute("select * from book")
Worksheets("Sheet2").Range("A2").CopyFromRecordset rsRecordset
End Sub
预期结果是返回的数据 实际结果是 运行时错误:“ SQL_HANDLE_ENV上的Microsoft(ODBC驱动程序管理器)驱动程序的SQLAllocHandle失败”