为什么Excel VBA无法使用@符号查询表?

时间:2014-10-01 20:55:26

标签: sql excel vba excel-vba

我试图查询表格,将其称为历史记录@integration。

当我查询表时,使用这种类型的查询:

select * from history@integration where id=5 

并获得预期的输出。

使用excel,我以这种方式连接到数据库:

cn.Open ( _
"User ID=" & userID & _
";Password=" & password & _
";Data Source=" & datasource & _
";Provider=MSDAORA.1")

但是我得到data type is not supported的运行时错误。我已经使用完全相同的连接验证了我可以使用其他标准查询数据库"像select * from history这样的表格。任何想法我怎么能得到'#34;正确"类型。

2 个答案:

答案 0 :(得分:1)

@是SQL中的保留字符。尝试用括号括起表格名称:[history@integration]

答案 1 :(得分:1)

在Oracle中(假设这是您正在使用的,并且在您的问题中说明有用)@通常用于表示数据库链接:可能它不是表的一部分名字,但表"历史"实际上是在一个不同的数据库中链接到一个名为" integration"的数据库链接。

并非所有数据类型都可通过Oracle DB链接(例如LOB类型)选择