对 Oracle DB 的直通查询中的 MS 访问表达式

Posted

技术标签:

【中文标题】对 Oracle DB 的直通查询中的 MS 访问表达式【英文标题】:MS Access Expressions in Pass-Through Query to Oracle DB 【发布时间】:2012-03-06 12:31:04 【问题描述】:

我正在尝试从我的 MS Access 2003(是的,我知道这是老派,但我的双手被束缚 :/)创建一个直通 SQL 语句到服务器上的 Oracle DB。

长话短说,服务器表包含冷冻机模型,其中每个模型存在 1 到 5 次,ID 以一个值作为前缀,表明它的状况。问题是,我必须获取冰箱的所有“版本”。在 Access 中,我会写如下内容:

SQL = "SELECT Right(FREEZERS.ID,4) FROM FREEZERS WHERE Right(FREEZERS.ID,4) = '" & myID & "'"

但这会在我对 Oracle 的直通查询中触发错误。甚至可以在传递查询中编写这样的表达式吗?

我正在使用 vba 和一个带有连接字符串的 QueryDef 到服务器(如果我剥离 Right() 表达式,它工作正常),然后打开一个包含结果的记录集。

先谢谢你了,Viggo

编辑: 啊,对不起..

最后一次谷歌搜索,答案弹出:

显然,Oracle 对其中一些函数有不同的语法。在这种情况下,我发现 Oracle 有一个 SUBSTR 函数和一个 LENGTH 函数,解决了我的问题..

对于正在搜索的其他人:关键是搜索 Oracle 语法而不是直通语法..

来源: http://peoplesofttipster.com/2008/08/18/substringing-and-oracle-sql-basic-trick/

希望它可以帮助别人:)

【问题讨论】:

是的,关键是直通查询是在服务器端而不是本地运行的,因此必须用服务器采用的 SQL 语言编写。 ViggoV 请将您的答案作为答案发布。 【参考方案1】:

如上所述:

在 Pass-Through 中查询服务器的 SQL 语言.. :)

【讨论】:

:D 谢谢 ViggoV。还有一件事,这个问题不会显示为“未回答”,请将其标记为已解决。谢谢!

以上是关于对 Oracle DB 的直通查询中的 MS 访问表达式的主要内容,如果未能解决你的问题,请参考以下文章

使用 WITH 访问对 Oracle 的直通查询

MS Access 直通选择查询导致 SQL Server 中的页面锁定

访问直通无 DSN 的 Oracle 查询

MS Access 直通查询更新

如何从 Oracle DB 查询外部 MS Access DB?

刷新访问直通查询