SQL Server訪問Oracle提示[訊息 9803 資料不適用於型別 "numeric"]問題
伺服器A,安裝的是SQL Server2005,Oracle 10g的客戶端,版本10.2.0.1
伺服器B,裝的是Oracle 11g,版本11.2.0.1
現在是伺服器A上建了連結伺服器,去訪問伺服器B上面的Oracle庫資料
假如使用微軟的驅動Microsoft OLE DB Provider for Oracle(MSDAORA)建連結伺服器,則效能不敢恭維(但語句是可以正常執行的),
因為效能原因,使用Oracle的驅動Oracle Provider for OLE DB(OraOLEDB.Oracle)來建連結伺服器,但隨之問題來了
oracle的T1表,只有一個欄位F1,number(19,4)型別
SQL Server查詢分析器中,無論使用下列哪種語法格式
select * from LINKDB..USER1.T1;
select * from openquery(LINKDB,'SELECT * FROM T1');
都會提示
訊息 9803,級別 16,狀態 1,第 1 行 資料不適用於型別 "numeric"。
網上查詢解決辦法,沒找到適合此情況的有效解決方案(查詢到此錯誤資訊,但對應的解決方法不外乎做型別轉換)
按錯誤提示的字面意思,開始以為F1欄位值有最大值限制,通過反覆測試,發現的規律(不知道算不算規律)並不是值的大小,測試結果如下:
5.0000 可以
9.0000 可以
10.0000 不可以
20.0000 不可以
50.0000 不可以
50.1000 可以
51.0000 可以
100.0000 不可以
110.0000 可以
100.0100 可以
500.0000 不可以
1000.0000 不可以
1200.0000 不可以
1201.0000 可以
規律貌似就是,>=10的數,只要只有一位非零的數,就不行,>=1000的數,只有一位或者前兩位非零,也是不行的
怪哉!
查了一下SQL Server的版本
select @@version
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
沒打pack
所以先打上sp4,之後仍然沒解決
再考慮Oracle客戶端版本問題,在伺服器A上面裝了Oracle 11g的客戶端,問題解決!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29512902/viewspace-2094308/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於jsp 呼叫bean 訪問sql-server資料庫問題JSBeanSQLServer資料庫
- SQL Server通過dblink訪問Oracle資料SQLServerOracle
- SQL Server 資料訪問策略:CLRMESQLServer
- SQL Server資料庫中的資料型別隱式轉換問題SQLServer資料庫資料型別
- 尋找資料庫訪問的效能瓶頸(適用於SQL Server 2005 及以上 )資料庫SQLServer
- 從Oracle訪問SQL Server(GATEWAYS)OracleSQLServerGateway
- SQL Server 資料訪問策略:即席SQLCUSQLServer
- SQL Server建立Linked Server訪問OracleSQLServerOracle
- 關於SQL Server通過OLEDB訪問ORACLE資料表涉及CLOB或BLOB欄位的錯誤提示SQLServerOracle
- 關於SQL Server通過OLEDB訪問ORACLE資料表涉及Oracle11g新增欄位的錯誤提示SQLServerOracle
- 實戰oracle gateway訪問sql server2000資料庫OracleGatewaySQLServer資料庫
- Sql Server 資料庫超時問題SQLServer資料庫
- sql server 資料庫還原問題SQLServer資料庫
- SQL Server-資料型別SQLServer資料型別
- SQL Server資料型別BLOBSQLServer資料型別
- Oracle DBLink跨資料庫訪問SQL server資料同步 踩坑實錄Oracle資料庫SQLServer
- 關於WebLogic 訪問Oracle 資料庫(建立連線池)問題WebOracle資料庫
- Oracle Gateways透明閘道器訪問SQL ServerOracleGatewaySQLServer
- SQL Server 資料訪問策略:儲存過程QCSQLServer儲存過程
- 關於oracle資料庫訊號量的問題Oracle資料庫
- 關於oracle中的sql資料型別OracleSQL資料型別
- SQL SERVER和ORACLE的排序問題SQLServerOracle排序
- 關於SQL Server 中的25種資料型別SQLServer資料型別
- 關於SQL Server的記憶體佔用問題SQLServer記憶體
- 離線資料推送問題(訊息佇列)佇列
- 【SQL】18 SQL NULL 函式、SQL 通用資料型別、SQL 用於各種資料庫的資料型別SQLNull函式資料型別資料庫
- Sql Server在.net中的資料訪問輔助類SQLServer
- SQL Server 2005 管理併發資料訪問[zt]SQLServer
- 在Linux下訪問MS SQL Server資料庫(轉)LinuxSQLServer資料庫
- oracle透過透明閘道器訪問sql serverOracleSQLServer
- SQL Server資料庫恢復常見問題SQLServer資料庫
- 深入SQL Server資料庫速度提升問題(一)SQLServer資料庫
- 深入SQL Server資料庫速度提升問題(二)SQLServer資料庫
- Oracle指令碼(Oracle Scripts) – 檢視索引訪問次數及索引訪問型別Oracle指令碼索引型別
- SQL Server中datetimeset轉換datetime型別問題淺析SQLServer型別
- 訊息驅動bean使用資料來源問題Bean
- Sql Server之資料型別詳解SQLServer資料型別
- SQL Server 中自定義資料型別SQLServer資料型別