2017-01-31 2 views
-2

Мне нужна ваша помощь пожалуйста! У меня проблема на уровне удаления, это очень хорошо работает на консоли, но на уровне в базе данных нет изменений. Спасибо вам за помощьoracle DELETE подготовленное заявление

public void b2_action() { 
    try { 
      String req ="DELETE from EMPLOYEES where 'FIRST_NAME' = (?)"; 
      conn = macon.getConnection(); 
      PreparedStatement ps = conn.prepareStatement(req); 
      String a= text.getValue().toString(); 
      System.out.println(a); 
      ps.setString(1,a); 
      ps.executeUpdate(); 
      System.out.println("okkkkkkkkkkkkkkk"); 
     } catch (SQLException ex) { 
      ex.printStackTrace(); 
     } 
} 

delete

console

+1

Почему ты ставить кавычки вокруг имени столбца? См. Ссылку на язык SQL для диалекта SQL, который вы используете; т. е. только в вашей документации по БД. –

+0

Где вы совершаете транзакцию? –

+0

Думаю, вы не совершаете транзакцию, потому что я не вижу в вашем предоставленном коде. – fabfas

ответ

2

Запрос должен быть:

String req ="DELETE from EMPLOYEES where FIRST_NAME = ?"; 

Примечания remotion из одинарных кавычек ... ''

+1

Котировки не нужны для замещенных параметров. – Zefick

+0

спасибо @Zefick за комментарий –

+0

java.sql.SQLIntegrityConstraintViolationException: ORA-02292: ограничение целостности (HR.LOC_C_ID_FK) нарушено - найдена детская запись – eya17

1

Есть f РЭБ ошибки в запросе:

  • вам не нужно ставить FIRST_NAME кавычки
  • вам не нужны круглые скобки между вашей ?

String req = "DELETE from EMPLOYEES where FIRST_NAME = ?"; 
+0

java.sql.SQLIntegrityConstraintViolationException: ORA-02292: ограничение целостности (HR.LOC_C_ID_FK) нарушено - найдена детская запись – eya17

Смежные вопросы