簡體   English   中英

微軟 SQL 服務器和 Oracle SQL 開發人員

[英]Microsoft SQL Server and Oracle SQL Developer

我在 Microsoft SQL Server Management Studio 18 中將 Oracle 數據庫鏈接到我的 SQL 服務器。服務器對象 -> 鏈接服務器。

我有一個 SQL 聲明,當我在 Oracle 開發人員工具/平台上運行時,它會按預期返回信息。 但是當我在 SQL 服務器上運行完全相同的查詢時,它返回的結果不正確(行和列中的實際值不匹配)。

我知道的。

  • 我查詢的表位於 Oracle 數據庫中。
  • 如果我在 WHERE 語句中排除任何涉及 DATE 的內容,我可以在 Oracle 開發人員和 SQL 服務器上獲得相同/匹配的結果。

有什么想法嗎?

下面的查詢示例。 適用於 Oracle Developer 但不適用於 MSSQL

SELECT * FROM TABLE1
WHERE status = 'Deviation' and trunc(SRC_ROW_UPDT) BETWEEN TO_DATE('01/03/2020', 'DD/MM/YYYY') AND TO_DATE('10/12/2020','DD/MM/YYYY');

下面的查詢示例。 適用於 Oracle Developer 和 MSSQL

SELECT * FROM TABLE1
WHERE status = 'Deviation' and BATCHID = 'ThisBAtchID';

您不能在 SQL 服務器調用中使用 ORACLE 特定函數,例如 TO_DATE。 您必須使用 OPENQUERY 遠程執行它們。 MSDN 中的 OPENQUERY

SELECT * FROM OPENQUERY (OracleSvr, 'SELECT * FROM TABLE1
WHERE status = ''Deviation'' and trunc(SRC_ROW_UPDT) BETWEEN TO_DATE(''01/03/2020'', ''DD/MM/YYYY'') AND TO_DATE(''10/12/2020'',''DD/MM/YYYY'');');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM