【发布时间】:2012-11-13 13:37:26
【问题描述】:
我必须开发一个将一些数据插入 Oracle 数据库的小程序。不幸的是,我在使用 SQL Statement 和执行它时遇到了一些麻烦。这是我正在使用的代码:
db.execute(
String.format("INSERT INTO tops VALUES (%d, '%s', %d, %f.00, '%s', TO_TIMESTAMP('%s', 'YYYY-MM-DD HH24:MI:SS.FF'))",
item.getID(),
item.getTitle(),
this.elements,
item.getSize(),
item.getEntity(),
timestamp.toString()));
这是执行应该工作的部分,但我收到以下错误:
java.sql.SQLException: ORA-00913: Zu viele Werte
Google Translate 例外是:
java.sql.SQLException: ORA-00913: Too many values
【问题讨论】:
-
我认为您可以将引号远离字符串值。
-
听起来您要插入的值与表架构不匹配。 (值太多)
-
使用准备好的语句,字符串操作是一个非常糟糕的主意
-
您应该始终指定要插入的列。否则,一旦有人向表中添加新列,您的代码就会中断。
-
@Colin'tHart:不,他不能离开引号!他使用了一个简单的 SQL 查询字符串,并且没有引号,Java
String.format- 不知道这是一个正在组装的 SQL 字符串 - 不会插入引号...
标签: java sql string oracle11g ora-00913