Вставка одинарной кавычки в JDB C для SQL Запрос не работает - PullRequest
0 голосов
/ 23 марта 2020

У меня возникают проблемы, связанные с одинарной кавычкой, когда я использую ее в подготовленном выражении в JAVA через Oracle JDB C.

Допустим, у нас есть таблица Restaurant с столбцом restaurant_name с 1 значением: Jack's Deli

Я хочу использовать простой подготовленный запрос оператора, подобный этому:

    String result = "Jack\'\'s Deli"
    String sqlStatement = "select * from Restaurant where restauraunt_name like ? escape '\\' ";
    PreparedStatement pStmt = conn.prepareStatement(sqlStatement);
    pstmt.setString(1, result);

Результат показывает 0 возвращаемых значений, однако, когда я непосредственно ищу запрос в базе данных (ORACLE) работает нормально и получает результат. (Oracle использует две одинарные кавычки в качестве escape для первого)

Я думаю, что значение не передается в базу данных должным образом. Или есть другая проблема форматирования.

1 Ответ

1 голос
/ 23 марта 2020

Смысл подготовленных утверждений в том, что вам не нужно убегать.

.setString(1, "Jack's Deli") сделает это.

...