2011-04-29 53 views
1

我得到一个例外,因为异常的excuteUpdate

com.microsoft.sqlserver.jdbc.SQLServerException: String or binary data would be truncated. 

唯一的例外是在下面的行抛出:

PrepareStmt.setBinaryStream(1, new ByteArrayInputStream(data), data.length); 
updatePrepareStmt.executeUpdate(); 

我使用MS-SQL数据库。任何人都可以帮我解决这个问题吗?

我尝试插入数据的列的数据类型是varbinary,数据的长度也不是很大。我只是插入“测试”。

UPDATE
现在我增加了数据类型varbinary的大小。去到1024,但我现在得到新的异常: -

com.microsoft.sqlserver.jdbc.SQLServerException:从VARBINARY的 转换到BLOB是 不受支持

任何人都可以在此评论例外?

+2

_On executeUpdate,我得到这个异常_ ...很诗意! – Quassnoi 2011-04-29 11:11:03

+0

您尝试插入数据的字段的数据类型是什么? – 2011-04-29 11:14:08

+0

我试图插入数据的列的数据类型是varbinary – Priyanka 2011-04-29 11:20:36

回答

0

增加列容量..如果它是varchar(20)使其成为varchar(200)或其他可以容纳您的数据的东西。

3

由于异常消息SAIS,您的数据似乎大于它应该写入的数据库字段。 data.length的最大值是多少,列的最大长度是多少?

+0

数据类型其中我试图插入数据的列是varbinary,并且数据的长度也不大。我只是插入“测试” – Priyanka 2011-04-29 11:20:55

+0

你能展示完整的准备好的声明吗?如果可能是另一个溢出的列。 – Thomas 2011-04-29 11:25:51

+0

private PreparedStatement updatePrepareStmt; updatePrepareStmt = dbConn.getConnection()。prepareStatement(s); – Priyanka 2011-04-29 11:31:54