簡體   English   中英

Oracle nvarchar2(4000)列將不會導入到SQL Server 2008 R2中

[英]Oracle nvarchar2(4000) column wont be imported into SQL Server 2008 R2

我正在嘗試在SQL Server 2008 R2上運行它。

SELECT * FROM 
OPENQUERY(linked_oracle_server, 'SELECT A.Column1, A.Column2 from A')

這曾經工作過。 當在Oracle端將A.Column1更改為nvarchar2(4000)時,我們就開始面對問題。

現在,它失敗並顯示以下錯誤:

無法為“ linked_oracle_server”的OLE DB提供程序“ OraOLEDB.Oracle”創建列訪問器

我玩了一下,如果我執行SUBSTR(A.Column1,1,2000)它就可以了! 如果我將其更改為SUBSTR(A.Column1,1,2001)則會出現與上述相同的錯誤。 這與在SQL Server端具有最大限制為4000的NVARCHAR有關嗎? 即使NVARCHAR(MAX)能夠在SQL Server上支持更大的數據,也無法導入大於NVARCHAR2(2000)的Oracle列嗎?

解決此問題的方法是僅從Oracle端獲取一半的列長。

如果將SQL端列定義為NVARCHAR(MAX) (MAX為4000),則可以從Oracle端導入的最大長度是該長度的一半。 因此,必須在Oracle列上執行SUBSTR(A.Column1,1,2000)

暫無
暫無

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

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