Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

serwer sql połączony z serwerem Oracle nie zwraca żadnych danych, gdy dane istnieją

Dzisiaj miałem ten sam problem z wewnętrznym sprzężeniem. Jako tworzenie funkcji o wartościach tabeli sugerowane przez codechurn lub za pomocą tabeli tymczasowej sugerowane przez user1935511 lub zmienić Typy dołączania sugerowane przez cymorg nie ma dla mnie opcji, lubię się dzielić moim rozwiązaniem.

Użyłem Wskazówki dotyczące dołączania aby skierować optymalizator zapytań we właściwym kierunku, ponieważ wydaje się, że problem pojawia się w przypadku strategii łączenia zagnieżdżonych pętli ze zdalną tabelą lokalnie. Dla mnie HASZ , POŁĄCZ i ZDALNIE wskazówki dotyczące dołączania działały.

Dla Ciebie ZDALNIE nie będzie opcją, ponieważ może być używany tylko do operacji sprzężenia wewnętrznego. Więc użycie czegoś takiego jak poniżej powinno działać.

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego CTE (Common Table Expressions) w niektórych przypadkach spowalnia zapytania w porównaniu do tabel tymczasowych w SQL Server

  2. Użyj smo do zmiany nazwy plików danych

  3. Czy zapytanie REPLACE INTO jest dobrą praktyką?

  4. Kiedy należy używać średników w SQL Server?

  5. Niestandardowa klauzula SQL GROUP BY