Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

le serveur lié au serveur sql à oracle ne renvoie aucune donnée trouvée lorsque les données existent

Aujourd'hui, j'ai rencontré le même problème avec une jointure interne. En créant une Fonction de table suggéré par codechurn ou en utilisant une table temporaire suggéré par user1935511 ou en changeant les Join Types suggéré par cymorg n'y a pas d'options pour moi, j'aime partager ma solution.

J'ai utilisé Join Hints pour conduire l'optimiseur de requête dans la bonne direction, car le problème semble provenir de la stratégie de jointure de boucles imbriquées avec la table distante localement . Pour moi HASH , FUSIONNER et TÉLÉCOMMANDE les conseils de jointure ont fonctionné.

Pour vous Télécommande ne sera pas une option car elle ne peut être utilisée que pour les opérations de jointure interne. Donc, utiliser quelque chose comme ce qui suit devrait fonctionner.

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;