我有一個SQL Server鏈接服務器設置命中Oracle數據庫。我在SQL Server中有一個使用點符號連接到Oracle表的查詢。我收到來自Oracle的「未找到數據」錯誤。在Oracle方面,我打了一個表(不是視圖),也沒有涉及存儲過程。sql服務器鏈接到oracle的服務器返回沒有數據時發現數據存在
首先,當沒有數據時,我應該得到零行而不是錯誤。
其次,在這種情況下實際應該有數據。
三,我只看到PL/SQL代碼中的ORA-01403錯誤;從來沒有在SQL中。
這是完全錯誤消息:
OLE DB提供程序 「OraOLEDB.Oracle」 鏈接服務器 「OM_ORACLE」 返回消息 「ORA-01403:沒有找到數據」。
消息7346,級別16,狀態2,行1 無法從鏈接服務器「OM_ORACLE」的OLE DB提供程序「OraOLEDB.Oracle」獲取行的數據。
以下是一些更多細節,但它可能並不意味着什麼,因爲您沒有我的表格和數據。
這是有問題的查詢:
select *
from eopf.Batch b join eopf.BatchFile bf
on b.BatchID = bf.BatchID
left outer join [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] du
on bf.ReferenceID = du.documentUploadID;
我不明白爲什麼我得到一個「沒有內容」的錯誤。下面的查詢使用相同的Oracle表並且不返回任何數據,但我沒有收到錯誤 - 我只是沒有返回行。
select * from [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] where documentUploadID = -1
下面返回數據的查詢。我剛從連接中刪除了一個SQL Server表。但是刪除批處理表不會更改從batchFile返回的行(在這兩種情況下都是271行 - batchFile中的所有行都有批處理條目)。它應該仍然將相同的batchFile行連接到相同的Oracle行。
select *
from eopf.BatchFile bf
left outer join [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] du
on bf.ReferenceID = du.documentUploadID;
而這個查詢返回5行。它應該與原始查詢相同。 (我不能使用這個,因爲我需要來自batch和batchFile表的數據)。
select *
from [OM_ORACLE]..[OM].[DOCUMENT_UPLOAD] du
where du.documentUploadId
in
(
select bf.ReferenceID
from eopf.Batch b join eopf.BatchFile bf
on b.BatchID = bf.BatchID);
有沒有人遇到過這個錯誤?