【问题标题】:LinkedServer Openquery is throwing this error : ORA-00923: FROM keyword not found where expectedLinkedServer Openquery 抛出此错误:ORA-00923: FROM 关键字未在预期的位置找到
【发布时间】:2020-08-03 23:52:55
【问题描述】:

我在 SQL Server 2012 中针对链接服务器运行以下查询,并且出现以下错误。 我是否使用了不正确的关键字/函数或缺少任何语法。 当我在没有 openquery 的情况下运行时,查询运行良好

ORA-00923: FROM keyword not found where expected

查询如下:

select * from openquery(LinkedServerName,
'select t.TRANSACTION,t.PARTNER,t.DATE

from

(select st.TRANSACTION,st.PARTNER,st.DATE
,RowNum = ROW_NUMBER() over(partition by st.TRANSACTION order by st.DATE desc)
from tbltransactions st) t where t.RowNum = 1')

【问题讨论】:

  • RowNum = ROW_NUMBER() ... 不是您在 Oracle(或标准 SQL)中分配别名的方式
  • 感谢您选择这个@a_horse_with_no_name。你能帮我纠正一下吗?
  • 很明显,您总是在标准 SQL 中指定列别名的方式:row_number() over (...) as rownum
  • 也许我在做一些愚蠢的事情,但在更新此别名后我收到了不同的错误。 ORA-30484: 缺少此函数的窗口规范
  • 哦,谢谢让我更新这个..

标签: sql-server oracle linked-server openquery


【解决方案1】:

请尝试

select * from openquery(LinkedServerName,
'select t.TRANSACTION,t.PARTNER,t.DATE

from

(select st.TRANSACTION,st.PARTNER,st.DATE
,ROW_NUMBER() over(partition by st.TRANSACTION order by st.DATE desc) as RowNum
from tbltransactions st) t where t.RowNum = 1')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 2017-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多