我建立8个表的数据库,我使用Java框架构建将执行以下功能的UI SQL表:尝试更新使用Java
插入,删除,更新,搜索和选择。
除更新外,所有功能都可以正常工作。以下是更新的代码:
stmt_update = conn_update.createStatement();
stmt_update.executeUpdate("UPDATE Conference SET C_NAME = '" + confname + "', C_YEAR = " + yr
+ ", START_DATE = to_timestamp('" +stdate +"','yyyy-mm-dd HH24:MI:ss.FF1'), END_DATE = to_timestamp('" +enddate +"','yyyy-mm-dd HH24:MI:ss.FF1'),"
+ "COUNTRY = '"+country_update+"', CITY = '"+city_update+"', VENUE = '"+venue_update+"',"
+ ", CONTACT_EMAIL = '"+c_email_update+"' where conference_id = '" + confid + "'");
表结构为:
(
Conference_ID varchar(10) NOT NULL,
C_Name varchar(20),
C_Year numeric(4,0),
Start_Date date,
End_Date date,
Country varchar(10),
City varchar(10),
Venue varchar(10),
Contact_Email varchar(10),
PRIMARY KEY(Conference_ID)
);
错误是:
ORA-01747:无效user.table.column,TABLE.COLUMN,或列 规格
我以为有事可做与日期输入。
任何建议都会有很大帮助。
感谢。
----- 更新 -------------- 使用准备语句
stmt_update = conn_update.prepareStatement("UPDATE Conference SET C_NAME = '" + confname + "', C_YEAR = " + yr
+ ", START_DATE = to_timestamp('" +stdate +"','yyyy-mm-dd HH24:MI:ss.FF1'), END_DATE = to_timestamp('" +enddate +"','yyyy-mm-dd HH24:MI:ss.FF1'),"
+ "COUNTRY = '"+country_update+"', CITY = '"+city_update+"', VENUE = '"+venue_update+"',"
+ ", CONTACT_EMAIL = '"+c_email_update+"' where conference_id = '" + confid + "'");
stmt_update.executeUpdate("UPDATE Conference SET C_NAME = '" + confname + "', C_YEAR = " + yr
+ ", START_DATE = to_timestamp('" +stdate +"','yyyy-mm-dd HH24:MI:ss.FF1'), END_DATE = to_timestamp('" +enddate +"','yyyy-mm-dd HH24:MI:ss.FF1'),"
+ "COUNTRY = '"+country_update+"', CITY = '"+city_update+"', VENUE = '"+venue_update+"',"
+ ", CONTACT_EMAIL = '"+c_email_update+"' where conference_id = '" + confid + "'");
仍然得到同样的错误尝试。
错误:
ORA-01747:无效user.table.column,TABLE.COLUMN,或列 说明书
打印生成的语句,并添加这个问题的结果。您也可以开放SQL注入。更好地使用'PreparedStatement'(如果你的错误消失了,我也不会感到惊讶)。 –
如果您尝试使用准备好的语句,请将其添加到问题中。最好修复准备好的语句,而不是糟糕的,不安全的SQL语句。 – RealSkeptic
感谢您的输入。显然这是一个逗号造成的问题。 – shubhs9