2011-02-14 62 views
2

我收到以下錯誤: 用於Oracle的Microsoft OLE DB提供程序:數據類型不受支持。如何使用經典ASP頁面從Oracle數據庫讀取NCLOB,CLOB數據值?

可能有人幫我找出這個請...

現狀: 從SQL Server 2005遷移近日數據庫到Oracle 11g。其中一個表在SQL Server中有一些數據類型爲ntext的列,在遷移到Oracle期間轉換爲NCLOB。客戶端是通過OLEDB連接訪問Oracle數據庫的傳統ASP頁面(VBScript)。 當執行到達讀取類型爲NCLOB的列的查詢(Select query)時,它將拋出用於Oracle的Microsoft OLE DB提供程序:數據類型不受支持錯誤。當我拿出特定列然後查詢運行良好...

問題:如何從經典ASP頁面讀取NCLOB,CLOB數據值?

PLZ讓我知道如果你需要更多的信息.​​....

謝謝。

回答

2

我知道,微軟的Oracle ODBC驅動程序不支持任何LOB的types--我會打賭它的OLE DB提供者沒有給出錯誤。您可以升級到Oracle OLE DB提供程序嗎?

另外,由於您正在從SQL Server遷移到Oracle,您是否真的需要使用NCLOB數據類型?由於Oracle允許數據庫字符集爲Unicode,所以通常不需要(也不希望)使用NVARCHAR2或NCLOB數據類型,除非您支持需要非Unicode字符集的舊數據庫。對於本質上是英文或西文Eurpoean的數據,將數據存儲在CLOB中對存儲空間有很大的好處,因爲CLOB會將數據以UTF-8而非UTF-16存儲在NCLOB中(假設您選擇了一個Unicode字符集爲數據庫)。消除NVARCHAR2和NCLOB列也使前端工具更容易處理數據。

+0

感謝您的快速回復。 我不確定使用Oracle OLEDB提供程序。我將不得不找出答案。 我解決了這個問題,通過將LOB數據類型轉換爲字符串,同時檢索它們(但我不確定這是多麼的好...您的意見是讚賞,謝謝..) 我這樣做了, dbms_lob。 substr(LOB_Column,dbms_lob.getlength(LOB_Column),1)作爲LOB_Column_Alias – user536652 2011-02-15 20:11:13