从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'" 描述了一个常见的Java编程问题,涉及到数据库连接。在Java应用程序中,JDBC(Java Database Connectivity)驱动用于与各种...
Jar包:sqljdbc4-4.0.jar
在IT行业中,数据库是数据存储和...描述中提到的“解决Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0问题”是指在Java项目中,如果缺少对应的Maven或Gradle依赖,那么在编译或运行项目时,会出现找不到`...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); // 使用连接执行数据库操作 } catch (ClassNotFoundException e) {...
由于项目中必须得用JDK6来作为Java环境,于是连接SQLServer时出现了com.microsoft.sqlserver.jdbc.SQLServerException: 驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“ Java...
标题中的"sqljdbc4.jar, sqljdbc41.jar, sqljdbc42.jar"是指Microsoft SQL Server为Java应用程序提供的Java Database Connectivity (JDBC)驱动程序。这些JAR文件是数据库连接的关键,允许Java代码与SQL Server进行...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ``` 3. **建立连接**:然后,使用`java.sql.DriverManager.getConnection()`方法创建数据库连接。需要提供数据库URL、用户名和密码。例如: ``...
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数据库管理系统中,处理数据类型转换是常见的操作,特别是在处理数字和各种字符串格式时。本篇文章将详细探讨如何在“整型数字”和“字符串表示的十六进制数字”之间进行转换,主要涉及两个关键函数:...
在IT行业中,数据库是数据存储和管理的核心,而SQL Server是一款广泛应用的关系型数据库管理系统,尤其在企业级系统中占据重要地位。为了与SQL Server进行交互,开发者通常会使用编程语言结合数据库驱动。在这个场景...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); System.out.println("Connected to the database!"); // 执行...
SQL Server JDBC驱动是微软提供的一个实现JDBC接口的库,使得Java开发者可以方便地连接到SQL Server数据库。 描述中的“连接SQL SERVER的JDBC 6,用于其它开发软件连接sql server的连接桥”进一步阐述了这个驱动...
常见的SQL Server连接失败错误以及解决方法,帮助你解决安装问题
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
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, username, password); System.out.println("Connected to the database!"); // 进行...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ``` 2. 创建数据库连接:使用`DriverManager.getConnection()`方法建立与数据库的连接。 ```java String url = "jdbc:sqlserver://服务器地址:端口...
在SQL Server数据库管理中,"截断二进制数据查询"是一个重要的操作,尤其是在处理大量数据或长字段时。这个工具或技术主要针对的是二进制数据类型(如BINARY, VARBINARY或IMAGE),这些数据类型可能包含非常大的值,...
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); ``` 2. 创建连接:使用DriverManager.getConnection()方法,传入数据库URL、用户名和密码。 ```java String url = "jdbc:sqlserver://localhost:...
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[] ...