English 中文(简体)
将 Java 字符对象值插入 Oracle CHAR(1) 列错误
原标题:Error Inserting Java Character object value into Oracle CHAR(1) column

I m 使用 Spring jdbcTemplate. update (String sql, object[] args) 执行甲骨文数据库中的预写插入语句。其中对象之一是含有值Y的字符对象,目标列为 CHAR(1) 类型,但我正在接收

java.sql.SQLException: Invalid column type

例外。

我向后和向前调试了这个选项, 毫无疑问, 引发问题的就是这个特定对象。 当此字符对象被省略时, 插入的执行符与预期的相同 。

我还可以输出 sql 值和对象值, 将 sql 复制为 sql 开发器, 将值占位符 < code> (? s) 替换为对象的实际值, 插入将正常工作 。

誓以保护犯罪的人,

INSERT INTO SCHEMA.TABLE(NUMBER_COLUMN,VARCHAR_COLUMN,DATE_COLUMN,CHAR_COLUMN) VALUES (?,?,?,?);

对象值 :

values[0] = [123]
values[1] = [Some String]
values[2] = [2012-04-19]
values[3] = [Y]

在 sql 开发器中手工操作的组合, 效果很好:

INSERT INTO SCHEMA.TABLE(NUMBER_COLUMN,VARCHAR_COLUMN,DATE_COLUMN,CHAR_COLUMN) VALUES (123, Some String , 19-Apr-2012 , Y );

准备的语句 sql 本身是动态生成的, 其依据是数据传输对象( 我们希望数据库能处理默认值的生成) 中包含的非核实例变量对象( 因此, 我不能接受任何显示我只修改 sql 或插入常规的答案 ) 。

有谁遇到过这种情况,能向我解释一下发生了什么以及如何修补它吗? 令人沮丧的是,我似乎无法将字符对象插入CHAR(1)字段。 任何帮助都将非常感激。

真诚的长时期卢克尔首次招贴画

最佳回答

没有包含字符值的准备声明.setXxx (), Oracle docs 指出所有 JDBC 字符类型图都显示为 Java Strings 。 另外,请参见 < a href="http://docs.oracle.com/javase/1.3/docs/guide/jdbc/getstart/mapping.html#1039196 ,其中不包括从 Java charp Character 到 JDBC 类型的绘图。 > http://docs.oracle.com/javase/1.3/docs/guide/jdbc/getstart/mapping.html#1039196 。

您必须将值转换为字符串 。

问题回答

暂无回答




相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签