【发布时间】:2011-11-25 18:55:36
【问题描述】:
我有时会在我的应用程序中使用 hsqldb 2.2.5 版
org.hsqldb.HsqlException:数据异常:字符串数据,右截断。
所以我想知道可能的原因是什么。我没有在 varchar 列中插入任何类似 longvarchar 的数据。
http://sourceforge.net/tracker/index.php?func=detail&aid=2993445&group_id=23316&atid=378131
我搜索了上面的链接,但没有得到适当的反馈。
在异常栈下面给出 此异常并不经常发生。
那么这可能是什么原因以及如何将脚本文件中的数据类型长度设置为在运行时增加?
java.sql.SQLException: data exception: string data, right truncation
at org.hsqldb.jdbc.Util.sqlException(Util.java:255)
at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(JDBCPreparedStatement.java:4659)
at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(JDBCPreparedStatement.java:311)
at com.dikshatech.agent.db.NodesRuntimeTable.persistData(NodesRuntimeTable.java:151)
at com.dikshatech.agent.jobs.WorkFlowJob.execute(WorkFlowJob.java:108)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: org.hsqldb.HsqlException: data exception: string data, right truncation
at org.hsqldb.error.Error.error(Error.java:134)
at org.hsqldb.error.Error.error(Error.java:104)
at org.hsqldb.types.CharacterType.castOrConvertToType(CharacterType.java:523)
at org.hsqldb.types.CharacterType.convertToType(CharacterType.java:638)
at org.hsqldb.StatementDML.getInsertData(StatementDML.java:921)
at org.hsqldb.StatementInsert.getResult(StatementInsert.java:124)
at org.hsqldb.StatementDMQL.execute(StatementDMQL.java:190)
at org.hsqldb.Session.executeCompiledStatement(Session.java:1344)
at org.hsqldb.Session.execute(Session.java:997)
at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(JDBCPreparedStatement.java:4651)
【问题讨论】:
-
我通过将 varchar() 更改为 CHAR VARYING 来解决,这是默认的 varchar(32768) ,它会动态更新。
标签: hsqldb