Excel OBDC - SQL查询

时间:2017-06-22 13:51:28

标签: sql excel oracle vba

我正在尝试通过ODBC连接使用Excel从大型Oracle数据仓库中提取数据。我有一个使用Access中的编辑器工作的查询。我已经尝试使用Power Query和Microsoft SQL来使用此查询将这些数据导入Excel并且我收到错误。

因此:

  1. 从Excel执行的SQL是否需要使用不同的语法?它不应该仍然是Oracle吗?
  2. 如何使用此预先编写的查询来ping数据仓库并获得我需要的内容?
  3. 这是我到目前为止的SQL。我不得不改变一些表名...对不起,如果这让它变得奇怪。

1 个答案:

答案 0 :(得分:1)

您发布的SQL使用特定于Access的功能。如果直接针对Oracle运行,那么这不是有效的SQL查询。如果在Access中有一堆链接表,那将允许这样做。

Excel中的ODBC数据源连接的工作方式不同。 ODBC直接在数据源上执行查询。它首先进行一些验证,并支持目标支持的有限的SQL语言子集。子集中包含的内容部分取决于为连接选择的驱动程序。

所以你想要做的是使用一个工具,让你直接在Oracle环境中构建查询,比如Quest Toad或Oracle SQL Developer。一旦您在那里使用查询,就应该更容易将其移植到Excel。

我喜欢做的一件事是将我的查询放入数据库的视图中。然后我可以在创建Excel连接时从视图中选择所有内容。

还值得指向My Data Sources文件夹。首次在Excel中设置ODBC连接时,默认情况下,Windows中的连接将保存在名为"我的数据源"的文件夹中。位于您的用户个人资料文件夹下。例如:C:\Users\UserName\My Data Sources\Data Source Name.odc

您可以在任何文本编辑器中打开这些*.odc文件,您应该可以在此处手动编辑SQL。特别是寻找<odc:CommandText>元素。通过这种方式,您可以预先构建一个简单的查询,然后在您喜欢的环境中改进SQL命令,并轻松地将更新的SQL移动到现有的ODBC连接。