Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

sql сървър, свързан сървър към oracle, не връща намерени данни, когато данните съществуват

Днес изпитах същия проблем с вътрешно присъединяване. Като създаване на функция с таблични стойности предложено от codechurn или с помощта на Временна таблица предложено от user1935511 или промяна на типове присъединяване предложено от cymorg няма опции за мен, обичам да споделя моето решение.

Използвах Съвети за присъединяване за да насочите оптимизатора на заявките в правилната посока, тъй като проблемът изглежда възниква от стратегия за присъединяване на вложени цикли с отдалечената таблица локално. За мен HASH , ОБЕДИ и ДИСТАНЦИОННО съветите за присъединяване проработиха.

За вас ДИСТАНЦИОННО няма да бъде опция, защото може да се използва само за вътрешни операции за свързване. Така че използването на нещо като следното трябва да работи.

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. SQL Server избира произволна (или първа) стойност с агрегиране

  2. Получаване на странна грешка, SQL Server заявка с помощта на клауза `WITH`

  3. Как да получите максимални и минимални стойности от таблица с помощта на агрегатна функция - SQL Server / TSQL урок, част 129

  4. Какво представлява типът данни SYSNAME в SQL Server?

  5. Как да използвате индекс в SQL заявка