2016-02-26 61 views
0

由于可能存在超过4000个字符的字段,我需要从具有定义为clob数据类型的列的oracle视图中重新获取数据。如何在VB中处理Excel中的Clob数据类型SQL查询

我在Excel VB中执行子例程,执行查询并将结果放入单元格区域,但是当我尝试执行查询时遇到问题“数据类型不受支持”。

甚至有可能在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 
+0

你遇到了什么问题? –

+0

对不起复制错误的文本说数据类型不支持。 – Tricky9132

+0

它说什么?在哪一行? – Raystafarian

回答

1

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

请按照下面的步骤来配置的Oracle Home驱动程序在你的机器 -

  1. 安装Oracle即时客户端12C
  2. 找到这条路径 - C:\Oracle\product\12.1.0\client\Network\Admin\Sample
  3. 都复制 “SQLNET.ORA” 和“TNSNAMES .ORA”文件
  4. 粘贴在Admin文件夹(如上面提到的路径)
  5. 编辑 “的tnsnames.ora” 文件
  6. [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]") 
        ) 
    ) 
    
  7. 保存文件

  8. 入住ODBC驱动程序(Control Panel -> Administrative Panel -> Data Sources (ODBC))驱动程序名称添加下面的代码 我的司机名称显示为 - 甲骨文公司在OraClient12Home1
  9. 尝试以下连接字符串

    ConnectionString="Driver={Oracle in OraClient12Home1};DBQ=Your SERVICE_NAME;User ld=User ID;pwd=Password;" 
    
相关问题