我建立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