如何从 SQL 查询处理 Excel 中的 Clob 数据类型

Posted

技术标签:

【中文标题】如何从 SQL 查询处理 Excel 中的 Clob 数据类型【英文标题】:How to Handle Clob Data Type in Excel from SQL Query 【发布时间】:2016-02-26 16:02:19 【问题描述】:

由于字段中可能有超过 4000 个字符,我需要从具有定义为 clob 数据类型的列的 Oracle 视图中检索数据。

我在 Excel VBA 中有一个执行查询并将结果放入单元格区域的子例程。

我遇到错误

“不支持的数据类型”

strSQL = "Select clob_field from Table1"

甚至可以在 Excel 中查询 Clob 数据类型的列吗?

我找不到任何可以表明我哪里出错的信息。

Sub Get_Data4()
Dim cn As Object
Dim rs As Object
Dim strCon As String
Dim strSQL As String
Dim strUsername As String
Dim strPassword As String
Dim strInput As String

'strUsername = InputBox("Input User Name")

'strPassword = InputBox("Input Password")

strCon = "Provider=MSDAORA;Data Source=xxx;User ID=xxx;Password=xxx;"

Set cn = CreateObject("ADODB.Connection")
cn.Open strCon

strSQL = "Select clob_field from Table1"

Set rs = CreateObject("ADODB.RECORDSET")
rs.ActiveConnection = cn
rs.Open strSQL
Sheet1.Range("A4").CopyFromRecordset rs
rs.Close
cn.Close

Call Get_Data
End Sub

【问题讨论】:

你遇到了什么问题? 抱歉复制了错误的文字,上面写着不支持数据类型。 它在哪里说的?在哪一行? strSQL = "Select clob_field from Table1" 基本上在这里。我有一个包含 4000 个字符的字段,可以作为 clob 存储在 oracle 中。我不知道如何使用VB查询oracle以将clob字段带入excel。 【参考方案1】:

我也遇到了同样的问题。尝试打开记录集时出现“未指定错误”。我发现使用 Oracle Home 驱动程序可以解决这个问题。

请按照以下步骤在您的机器中配置 Oracle Home Driver -

    安装 Oracle Instant Client 12C 找到这条路径 - C:\Oracle\product\12.1.0\client\Network\Admin\Sample 复制“sqlnet.ora”和“tnsnames.ora”文件 粘贴到 Admin 文件夹(如上述路径) 编辑“tnsnames.ora”文件

    在最后添加以下代码

    [DS Name as you wish] =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = [your DB server name or IP])(PORT = [Port Number]))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = [Your DB Service Name]")
        )
      )
    

    保存文件

    检查 ODBC 驱动程序中的驱动程序名称 (Control Panel -> Administrative Panel -> Data Sources (ODBC)) 我的驱动程序名称显示为 - Oracle in OraClient12Home1

    试试下面的连接字符串

    ConnectionString="Driver=Oracle in OraClient12Home1;DBQ=Your SERVICE_NAME;User ld=User ID;pwd=Password;"
    

【讨论】:

以上是关于如何从 SQL 查询处理 Excel 中的 Clob 数据类型的主要内容,如果未能解决你的问题,请参考以下文章

如何在EXCEL中使用SQL进行数据处理与分析

Excel ODBC - SQL 查询

怎样将SQL数据导出到EXCEL中

将参数从 Excel 工作簿中的单元格传递到 SQL 查询

怎样将SQL数据导出到EXCEL中

如何将参数传递给SQL(Excel)中的查询