kullanarak SQL tabloları güncellemek için çalışılıyor:Ben 8 tablolar bir veritabanı inşa ediyorum ve ben şu işlevleri yerine edecek bir UI oluşturmak için Java Çerçeveler kullanıyorum Java
ınsert, Update Sil, Ara ve Seç.
Tüm işlevler güncelleştirme dışında iyi çalışır.
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 + "'");
Tablo yapısı şöyledir::
(
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)
);
Hata geçerli: güncelleştirme için kod aşağıdadır
ORA-01747: geçersiz user.table.column, table.column veya sütun belirtim
Yapacak bir şey olduğunu düşündüm Tarih girişleri ile.
Her türlü öneri çok yardımcı olacaktır.
Teşekkürler.
----- Güncelleme
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 + "'");
Yine aynı hata alıyorum deyimini hazırlamak kullanarak çalıştı -------------- .
hata:
ORA-01.747: geçersiz user.table.column, table.column ya da sütun özellikleri hataya neden
Baskı üretilen tablosu ve ekleme bu sorunun sonucu. Ayrıca, SQL enjeksiyonuna açıksınız. Bir 'PreparedStatement' kullanmanız daha iyi olur (ve hatalarınız o zaman da ortadan kalkarsa şaşırmazdım). –
Hazırlanmış bir ifade kullanmayı denediyseniz, lütfen soruya ekleyin. Hazırlanan ifadeyi, kötü yapılandırılmış, güvensiz SQL deyiminden düzeltmek daha iyi olurdu. – RealSkeptic
Girişleriniz için teşekkürler. Anlaşılan, soruna neden olan bir virgüldü. – shubhs9