将Oracle DB SQL查询结果返回到excel失败

时间:2019-06-26 14:31:49

标签: excel vba

在搜索示例代码时,我发现以下内容用于将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失败”

0 个答案:

没有答案