[英]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.