Java Oracle вставить запрос

когда пользователь вводит специальный символ, как ? / и $ это дает исключение

Пожалуйста, помогите разобрать эти специальные символы. Мне нужно использовать вставить запрос я не могу использовать сохраненную процедуру или callable заявление в моем проекте.

Спасибо за ваше время.

Я пытаюсь вставить ввод пользователя в оракул с помощью Java JDBC. Я должен использовать запрос Insert.

тип колонки Oracle является varchar2.

Я могу вставить, если пользователь не вводит специальный символ.

Ответ на: "Java Oracle вставить запрос"

Количество ответов:2

Насколько я знаю, Oracle не требует от вас, чтобы избежать строки значения так:

INSERT INTO some_table (my_varchar_column) VALUES ('my string with a ?');

должны работать.

Но, конечно, использовать java.sql.PreparedStatement as follows: следующим образом:

PreparedStatement preparedStatement = connection.prepareStatement("INSERT INTO some_table (my_varchar_column) VALUES (?)");
preparedStatement.setString(1, "my string with a ?");
preparedStatement.execute();

Использование подготовленного заявления, как правило, рекомендуется способ выполнения S'L против базы данных. Это поможет производительности и поможет предотвратить атаки инъекций S'L.

Единственный символ, который нуждается в побеге в постоянной строке S'L является одной цитатой, по очевидной причине, что она в противном случае может быть путать для конца строки.

Если вы используете JDBC PreparedStatement's, то вопросительный знак сам по себе означает параметр. Вы бы написать что-то вроде

вставить в mytable (field1, field2) значения (?, ?)

, а затем использовать набор заявлений, чтобы установить эти значения. Если вы приложите вопросительный знак в кавычки, то это должен быть просто другой символ в строке, т.е.

вставка в mytable (поле1, field2) значения (?, '?')

имеет один параметр? и одна строка буквальное '?'.

PreparedStatement.set сделает необходимый побег котировок. Если вы сами создаете запрос, вам нужно будет включить код, чтобы сделать это побег. (Просто удвоить цитату, например.

вставить в mytable (поле1) значения ("Боб сказал,' Привет'")