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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server 資料訪問策略:CLRMESQLServer
- SQL Server資料庫中的資料型別隱式轉換問題SQLServer資料庫資料型別
- SQL Server 資料訪問策略:即席SQLCUSQLServer
- Oracle DBLink跨資料庫訪問SQL server資料同步 踩坑實錄Oracle資料庫SQLServer
- SQL Server-資料型別SQLServer資料型別
- SQL Server中datetimeset轉換datetime型別問題淺析SQLServer型別
- SQL Server 資料訪問策略:儲存過程QCSQLServer儲存過程
- 關於oracle資料庫訊號量的問題Oracle資料庫
- SQL Server資料庫恢復常見問題SQLServer資料庫
- 【SQL】18 SQL NULL 函式、SQL 通用資料型別、SQL 用於各種資料庫的資料型別SQLNull函式資料型別資料庫
- Serverless 解惑——函式計算如何訪問 SQL Server 資料庫Server函式SQL資料庫
- sql server 資料型別轉換函式SQLServer資料型別函式
- SQL Server日期資料型別DATE的使用SQLServer資料型別
- 關於Sql server資料型別HierarchyID 資料型別用法和遞迴顯示完整路徑SQLServer資料型別遞迴
- Oracle資料庫限制訪問IPOracle資料庫
- long資料型別跨平臺問題資料型別
- SQL Server建立使用者只能訪問指定資料庫和檢視SQLServer資料庫
- JDBC用ResultSet訪問大量資料時會遇到的問題JDBC
- 為SQL Server快照snapshot DB建立login訪問SQLServer
- SQL SERVER資料庫datediff函式引發的效能問題SQLServer資料庫函式
- 如何限制ip訪問Oracle資料庫Oracle資料庫
- 微課sql最佳化(10)、關於資料訪問方法SQL
- SQL Server 資料庫開發中的十大問題VYSQLServer資料庫
- JAVA訪問雲資料mysql出現問題JavaMySql
- Vue資料不渲染問題Vue
- 陣列轉json後的資料型別問題陣列JSON資料型別
- Oracle如何診斷遠端訪問資料庫慢/超時等問題小結Oracle資料庫
- 由於基本資料型別使用姿勢不對導致的線上"死迴圈"問題排查資料型別
- SQL Server 查詢超時問題排查SQLServer
- 淺談SQL Server中的快照問題SQLServer
- SQL 資料型別SQL資料型別
- SQL SERVER與C#的資料型別對應表SQLServerC#資料型別
- Ubuntu共享資料夾訪問許可權問題Ubuntu訪問許可權
- SQL Server跨庫跨伺服器訪問實現SQLServer伺服器
- Oracle 資料型別Oracle資料型別
- SQL SERVER 日期和時間資料型別及函式 (Transact-SQL)SQLServer資料型別函式
- Oracle透明閘道器訪問SQLServer資料庫OracleSQLServer資料庫
- Oracle透明閘道器訪問MySQL資料庫OracleMySql資料庫
- Oracle資料訪問元件ODAC的安裝方法Oracle元件