`
wenlongsust
  • 浏览: 71866 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据

 
阅读更多

从Oracle向SQL Server中间库交换数据的时候,出现了异常

com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据

具体异常信息如下:

Caused by:

com.microsoft.sqlserver.jdbc.SQLServerException: 将截断字符串或二进制数据。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPreparedStatement.java:314)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecuteUpdate(WSJdbcPreparedStatement.java:1104)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:771)

... 11 more


在网上搜罗了一下,大概有几种原因会导致此异常

http://www.cnblogs.com/lingy/archive/2012/09/14/2684491.html

字段长度不够


http://bbs.csdn.net/topics/330076495

有trigger处理业务逻辑



这次遇到的就是字段长度不够的问题,SQL Server中定义的长度为24,而Oracle中定义的长度为50,修改字段长度,问题解决


判断长度相关SQL语句如下:以字符串“某餐证字20112101230000159”为例

SQL Server中查询的SQL语句

select len('某餐证字20112101230000159'),datalength('某餐证字20112101230000159');

长度为21,占用25个字节


Oracle中查询的SQL语句

select length('某餐证字20112101230000159'), lengthb('某餐证字20112101230000159') from dual;

长度为21,占用25个字节

分享到:
评论

相关推荐

    Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'

    标题 "Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'" 描述了一个常见的Java编程问题,涉及到数据库连接。在Java应用程序中,JDBC(Java Database Connectivity)驱动用于与各种...

    运行项目,Maven(com.microsoft.sqlserver:sqljdbc4:4.0 )报错

    Jar包:sqljdbc4-4.0.jar

    sqljdbc4-4.0.zip

    在IT行业中,数据库是数据存储和...描述中提到的“解决Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0问题”是指在Java项目中,如果缺少对应的Maven或Gradle依赖,那么在编译或运行项目时,会出现找不到`...

    MS SQL Server JDBC驱动2.0版,sqljdbc_2.0

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 使用连接执行数据库操作 } catch (ClassNotFoundException e) {...

    解决无法通过SSL加密与SQLServer建立连接

    由于项目中必须得用JDK6来作为Java环境,于是连接SQLServer时出现了com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“​ ​Java​...

    sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar三个包

    标题中的"sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar"是指Microsoft SQL Server为Java应用程序提供的Java Database Connectivity (JDBC)驱动程序。这些JAR文件是数据库连接的关键,允许Java代码与SQL Server进行...

    连接MS SQLSERVER 的驱动jar包sqljdbc4-3.0.zip

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ``` 3. **建立连接**:然后,使用`java.sql.DriverManager.getConnection()`方法创建数据库连接。需要提供数据库URL、用户名和密码。例如: ``...

    sqljdbc42jre包/Microsoft JDBC Driver 6.0 for SQL Server微软官网下载

    Microsoft SQL Server JDBC 驱动程序 6.0 下载 Microsoft JDBC Driver 6.0 for SQL Server,这是一个 Type 4 JDBC 驱动程序,它通过 Java Platform Enterprise Edition 中可用的标准 JDBC 应用程序编程接口 (API) ...

    SQL Server中,在“整型数字”和“字符串表示的十六进制数字”之间进行转换的函数

    在SQL Server数据库管理系统中,处理数据类型转换是常见的操作,特别是在处理数字和各种字符串格式时。本篇文章将详细探讨如何在“整型数字”和“字符串表示的十六进制数字”之间进行转换,主要涉及两个关键函数:...

    sqljdbc_3.0,4.0 连接sqlserver数据库使用的jar包

    在IT行业中,数据库是数据存储和管理的核心,而SQL Server是一款广泛应用的关系型数据库管理系统,尤其在企业级系统中占据重要地位。为了与SQL Server进行交互,开发者通常会使用编程语言结合数据库驱动。在这个场景...

    SQL Server_JDBC驱动【mssql-jdbc-6.4.0.jre8.jar】.rar

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); System.out.println("Connected to the database!"); // 执行...

    sqljdbc_6.0

    SQL Server JDBC驱动是微软提供的一个实现JDBC接口的库,使得Java开发者可以方便地连接到SQL Server数据库。 描述中的“连接SQL SERVER的JDBC 6,用于其它开发软件连接sql server的连接桥”进一步阐述了这个驱动...

    常见的SQL Server连接失败错误以及解决方法.doc

    常见的SQL Server连接失败错误以及解决方法,帮助你解决安装问题

    sqljdbc4-4.0.jar下载 《无需积分》,自行提取

    sqljdbc4-4.0.jar下载 《无需积分》,...mvn install:install-file -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.0 -Dpackaging=jar -Dfile=G:\迅雷下载\BB-sqljdbc4-4.0\sqljdbc4-4.0.jar

    SQL Server连接JDBC需要的jar包

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); System.out.println("Connected to the database!"); // 进行...

    SqlServer2000的驱动sqljdbc4-3.0.jar

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ``` 2. 创建数据库连接:使用`DriverManager.getConnection()`方法建立与数据库的连接。 ```java String url = "jdbc:sqlserver://服务器地址:端口...

    截断二进制数据查询

    在SQL Server数据库管理中,"截断二进制数据查询"是一个重要的操作,尤其是在处理大量数据或长字段时。这个工具或技术主要针对的是二进制数据类型(如BINARY, VARBINARY或IMAGE),这些数据类型可能包含非常大的值,...

    sqlserver驱动包 jdbc驱动 sqljdbc.jar和sqljdbc4.jar

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ``` 2. 创建连接:使用DriverManager.getConnection()方法,传入数据库URL、用户名和密码。 ```java String url = "jdbc:sqlserver://localhost:...

    sqljdbc42.jar

    import com.microsoft.sqlserver.jdbc.SQLServerDriver; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Main { public static void main(String[] ...

Global site tag (gtag.js) - Google Analytics