Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

servidor vinculado do sql server ao oracle não retorna dados encontrados quando os dados existem


Hoje eu experimentei o mesmo problema com uma junção interna. Como criar uma Função com valor de tabela sugerido por codechurn ou usando uma Tabela temporária sugerido por user1935511 ou alterando os Tipos de associação sugerido por cymorg há opções para mim, eu gosto de compartilhar minha solução.

Eu usei Join Hints para direcionar o otimizador de consulta na direção certa, pois o problema parece surgir da estratégia de junção de loops aninhados com a tabela remota localmente. Para mim HASH , MERGE e REMOTA dicas de junção funcionaram.

Para você REMOTA não será uma opção porque pode ser usado apenas para operações de junção interna. Portanto, usar algo como o seguinte deve funcionar.
select *
from eopf.Batch b
join eopf.BatchFile bf
  on b.BatchID = bf.BatchID
left outer merge join [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] du
  on bf.ReferenceID = du.documentUploadID;