Excel ODBC - SQL 查询
Posted
技术标签:
【中文标题】Excel ODBC - SQL 查询【英文标题】:Excel OBDC - SQL Query 【发布时间】:2017-06-22 13:51:27 【问题描述】:我正在尝试使用 Excel 通过 ODBC 连接从大型 Oracle 数据仓库中提取数据。我有一个使用 Access 中的编辑器工作的查询。我尝试使用 Power Query 和 Microsoft SQL 来使用此查询将这些数据导入 Excel,但出现错误。
因此:
-
从 Excel 执行的 SQL 是否需要使用不同的语法?不应该还是甲骨文吗?
如何使用这个预先编写的查询来 ping 数据仓库并获取我需要的内容?
这是我到目前为止的 SQL。我不得不更改一些表名...抱歉,如果这让它变得很奇怪。
【问题讨论】:
我认为您正在寻找“通过查询”设置。不确定它在您的设置中的位置。 未选择传递查询选项(在 Access 中)。原始查询是否需要编写为 PTQ,然后复制到 Excel?目标是完全避免 Access,只使用 Excel 从数据仓库中查询我们需要的内容。我知道 VBA 代码可用于执行 SQL 查询,但我的 VBA 很差,所以我想避免这种情况(至少现在) 这取决于您使用的驱动程序。分享您的疑问 - 我认为这会帮助其他人帮助您 刚刚做了。谢谢你的建议 SQL 没有 VAL 函数。那是唯一的访问。 【参考方案1】:您发布的 SQL 使用了特定于 Access 的函数。如果直接针对 Oracle 运行,那不是有效的 SQL 查询。如果您在 Access 中有一堆链接表,那将允许这样做。
Excel 中的 ODBC 数据源连接的工作方式不同。 ODBC 直接在数据源上执行查询。它首先进行一些验证,并支持目的地支持的 SQL 语言的有限子集。子集中包含的内容部分取决于为连接选择的驱动程序。
因此,您要做的是使用一种工具,让您可以直接在 Oracle 环境中构建查询,例如 Quest Toad 或 Oracle SQL Developer。一旦查询在那里工作,将它移植到 Excel 应该会更容易。
我喜欢做的一件事是将我的查询放入数据库的视图中。然后我可以在创建 Excel 连接时从视图中选择所有内容。
还值得将您指向“我的数据源”文件夹。当您第一次在 Excel 中设置 ODBC 连接时,默认情况下,该连接保存在 Windows 中名为“我的数据源”的文件夹中,该文件夹位于您的用户配置文件文件夹下。例如:C:\Users\UserName\My Data Sources\Data Source Name.odc
。
您可以在任何文本编辑器中打开这些*.odc
文件,并且您应该可以在此处手动编辑 SQL。特别是寻找<odc:CommandText>
元素。通过这种方式,您可以预先构建一个简单的查询,然后在您喜欢的环境中改进 SQL 命令,并轻松地将更新的 SQL 移动到现有的 ODBC 连接。
【讨论】:
感谢 Joel Coehoorn 的回答。它确实解决了问题。以上是关于Excel ODBC - SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章