2011-02-17 64 views
1

如何在使用鏈接服務器連接到Oracle數據庫的SQL Server上使用OPENQUERY從Oracle數據庫中選擇BLOB列?通過鏈接服務器從Oracle數據庫選擇BLOB列到SQL Server數據庫

當我嘗試使用這個語法,我收到一個錯誤:

SELECT * FROM OPENQUERY(LINKED_SERVER_NAME , 
'Select blobColumn from TABLE') AS derivedtbl_1 

錯誤:

OLE DB provider "MSDAORA" for linked server "LINKED_SERVER_NAME" returned message "Oracle error occurred, but error message could not be retrieved from Oracle.". OLE DB provider "MSDAORA" for linked server "LINKED_SERVER_NAME" returned message "Data type is not supported.".

+0

如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼示例」按鈕(「{}」)以精確地設置格式和語法突出顯示它! – 2011-02-17 18:27:25

回答

0

這工作:

SELECT * FROM OPENQUERY(LINKED_SERVER_NAME , 
'Select DBMS_LOB.SUBSTR(blobColumn,4000,1) from TABLE') AS derivedtbl_1 

這僅返回的第4000個字符blob列,並且僅適用於具有文本(非二進制)數據的列。但它適用於我。

+0

如果您發佈代碼,XML或數據樣本,請**在文本編輯器中突出顯示這些行,然後單擊編輯器工具欄上的「代碼樣本」按鈕(「{}」)以精確地格式化和語法突出顯示它! – 2011-02-17 18:27:09

1

您可以更改您用來連接到Oracle的OLE DB提供程序嗎?用於Oracle的Microsoft OLE DB提供程序不支持BLOB數據類型。 Oracle OLE DB提供程序可以。如果您將連接更改爲使用Oracle提供程序的Oracle,它應該可以工作。

+0

當我偶然發現上面發佈的答案時,我正試圖弄清楚實際上如何做到這一點。好主意,但! – 2011-02-17 18:12:38

相關問題