gpt4 book ai didi

java - 尝试使用 Java 更新 SQL 表

转载 作者:行者123 更新时间:2023-11-30 10:46:45 26 4
gpt4 key购买 nike

我正在构建一个包含 8 个表的数据库,我正在使用 Java Frames 构建一个将执行以下功能的 UI:

插入、删除、更新、搜索和选择。

除更新外,所有功能都运行良好。以下是更新代码:

   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: invalid user.table.column, table.column, or column specification

我认为与日期输入有关。

任何建议都会有很大帮助。

谢谢。

-----更新----------------尝试使用 prepare 语句

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: invalid user.table.column, table.column, or column specification

最佳答案

   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 + "'");
__ Here one extra comma is exist.

导致错误的那两个逗号。

所以你的代码应该是:

   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 + "'");

关于java - 尝试使用 Java 更新 SQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36382869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com