我正在尝试从我的 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() 表达式,它工作正常),然后打开一个带有结果的记录集。
预先感谢,维戈
编辑:啊,对不起..
最后一次谷歌搜索,答案弹出:
显然,Oracle 对其中一些函数有不同的语法。在这种情况下,我发现 Oracle 有一个 SUBSTR 函数和一个 LENGTH 函数,解决了我的问题。
对于正在搜索的其他人:关键是搜索 Oracle 语法而不是直通语法。
资料来源: http: //peoplesofttipster.com/2008/08/18/substringing-and-oracle-sql-basic-trick/
希望它可以帮助别人:)