У меня есть Java-программа, которая подключается к базе данных, и я пытаюсь что-то обновить в базе данных с помощью подготовленных операторов и параметризованных запросов. Вот часть моего кода:параметризованный запрос в подготовленном SQL-заявлении
updateValSetId = con.prepareStatement("UPDATE COLUMNNAME " +
"SET COLUMNDISPLAYNAME = ? + ' Value Set Identifier' " +
"WHERE COLUMNDISPLAYNAME = ? + 'VALSETID' and TABLENAME = ?");
первые пару значений я ставлю в для аргументов знаком вопроса являются 1- счета, 2- АККТ, третий не имеет значения. МОЙ ВОПРОС --- --- есть ли способ совместить знак вопроса с строковым значением? знак дополнения не работает, я получаю ошибку «ORA = 01722: недопустимый номер»
после того, как я посмотрел, что означает, что ошибки я изменил код, чтобы что-то вроде этого:
updateValSetId = con.prepareStatement("UPDATE COLUMNNAME " +
"SET COLUMNDISPLAYNAME = '? Value Set Identifier' " +
"WHERE COLUMNDISPLAYNAME = '?VALSETID' and TABLENAME = ?");
что Ждет» т. Итак, есть ли способ совместить вопросительные знаки со строками?
Спасибо!
EDIT ----------> Я решил вынуть текст строки после? и положите его в другое место:
updateValSetId.setString(1, f.getValue() + " Value Set Identifier");
updateValSetId.setString(2, f.getKey() + "VALSETID");
updateValSetId.setString(3, e.getKey());
updateValSetId.executeUpdate();
Это после моих подготовленных заявлений, когда я присваиваю значения значению? параметр. «f» и «e» - это hashmaps, в которых хранятся данные, и мне интересно, почему приведенный выше код не работает, когда я добавляю строку к значению, которое я получаю от getValue и getKey. Я не получаю никаких ошибок, он компилируется и запускается, но он не обновляет значения, которые я хочу в базе данных. Например, ACCT является первым ключом, а Account является первым значением, поэтому, когда они передаются, они должны быть добавлены к строке, которая у меня есть после геттеров, и поэтому база данных должна обновлять ACCTVALSETID до идентификатора набора значений учетной записи, справа ? Что мне не хватает?
Спасибо!
Если код работает и вы не видите изменения в своей БД, возможно, может быть выбрано SQLException или нет? Проверь это. – JosephChilberry