当前位置:  数据库>oracle

SQL Server访问Oracle提示[消息 9803 数据不适用于类型 “numeric”]问题

    来源: 互联网  发布时间:2017-06-22

    本文导语: 服务器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)建链接服务...

服务器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的客户端,问题解决!


    
 
 

您可能感兴趣的文章:

  • SQL Server中用于备份的语句
  • 用于排名的sql
  • 安装SQL2008时提示删除SQL2005Express工具的解决方法
  • (X86/X64)安装sql server 2005 过程中提示“无法启动sql server的 启动”的解决方法
  • 安装sql server 2008 management提示已安装 SQL Server 2005 Express的解决方法
  • 在使用中,经常出现提示为:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt,是什么意思,怎样解
  • SQL Server提示"选定的用户拥有对象,所以无法除去该用户”
  • 我用kylix上的sql connection连接同一网段的linux上的MYSQL,但总是提示用户及密码不下确,但实际上用户及密码肯定是正确的呀?
  • sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法
  • PL/SQL Dev连接Oracle弹出空白提示框的解决方法分享
  • SQL Server 2005 安装遇到的错误提示和解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql类types的类成员方法: numeric定义及介绍
  • sql server中的decimal或者numeric的精度问题
  • sql server中decimal或numeric的精度问题
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口rowid的类成员方法: tostring定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: getwhereclause定义及介绍
  • 数据库 iis7站长之家
  • java命名空间java.sql接口statement的类成员方法: execute定义及介绍
  • sql2005 大数据量检索分页的sql代码
  • java命名空间java.sql接口resultset的类成员方法: getcursorname定义及介绍
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • java命名空间java.sql接口resultsetmetadata的类成员方法: getcolumntype定义及介绍
  • 微软网站下载的Ms SQL Server2000 JDBC Driver,必须用英文版的SQL server2000吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3