将窗口函数添加到从SQL到Oracle的链接查询会导致错误

时间:2012-01-09 18:32:59

标签: sql-server oracle linked-server

我有一个有效的SQL Server 2008查询,其中包含以下内容。 EMR_LIVE是针对OraOLEDB.Oracle的链接服务器,后端是Oracle 11g 11.2.0.2.0。

left join OpenQuery(EMR_LIVE
    , 'select Person.externalId
            , to_char(ml.convert_id_to_date(Document.clinicalDate), ''yyyymmdd'') as clDate
--          , row_number() over (partition by Orders.sdId order by Orders.orderId) as OrdOrder
            , Orders.code as orderCode
        from ml.Orders
            join ml.Document on Orders.sdId = Document.sdId
            join ml.Person on Orders.pId = Person.pId
        where Person.pId in (
            select Obs.pId
                from ml.Obs
                    join ml.ObsHead on Obs.hdId = ObsHead.hdId
                where ObsHead.name = ''SCHOOLREGDTE''
                    and Obs.xId = 1.e+035
                    and Obs.change = 2
            )
    ') SchoolOrders on pp.PatientId = SchoolOrders.ExternalId
       and convert(nvarchar(12), pv.Visit, 112) = SchoolOrders.clDate

但是,如果我取消注释row_number行,我会收到消息'准备查询时出错“'...'”对于链接服务器“EMR_LIVE”的OLE DB提供程序“OraOLEDB.Oracle”执行。

当我省略了ORDER BY子句时,它给了我一个错误,告诉我我需要添加它,但是在我做了之后,它只是厌恶地举起手来说“走开孩子,你在困扰我” 。如果我在Oracle SQL Developer中直接针对服务器运行链接查询(引号为fixed,natch),它就可以了。

对我在这里缺少什么的想法?感谢。

0 个答案:

没有答案