Добавление оконной функции к связанному запросу из SQL в Oracle приводит к ошибке - PullRequest
1 голос
/ 09 января 2012

У меня есть рабочий запрос 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, я получу сообщение «Произошла ошибка при подготовке запроса« »... для выполнения к поставщику OLE DB« OraOLEDB.Oracle »для связанного сервера« EMR_LIVE ». '

Когда я пропустил предложение ORDER BY, он дал мне ошибку, сообщив мне, что мне нужно добавить его, но после этого он просто с отвращением вскинул руки и сказал: "Уходи, парень, ты меня беспокоишь" , Если я запускаю связанный запрос непосредственно к серверу в Oracle SQL Developer (с фиксированными кавычками, natch), он работает просто отлично.

Есть мысли о том, что мне здесь не хватает? Спасибо.

...