Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

sql server server collegato a Oracle non restituisce dati trovati quando i dati esistono

Oggi ho riscontrato lo stesso problema con un Join interiore. Come creare una Funzione con valori di tabella suggerito da codechurn o utilizzando una Tabella temporanea suggerito da user1935511 o modificando i Tipi di iscrizione suggerito da cymorg non ci sono opzioni per me, mi piace condividere la mia soluzione.

Ho usato Suggerimenti per l'iscrizione per guidare Query Optimizer nella giusta direzione, poiché il problema sembra sorgere dalla strategia di join dei loop nidificati con la tabella remota in locale. Per me HASH , UNISCI e REMOTO i suggerimenti di partecipazione hanno funzionato.

Per te REMOTO non sarà un'opzione perché può essere utilizzata solo per operazioni di inner join. Quindi usare qualcosa come il seguente dovrebbe funzionare.

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;