Позвольте мне угадать ... строка ct
начинается с "ART" (или какого-либо варианта)?
Если это так, проблема в том, что SQL требует кавычек вокруг строковых литералов. Ваш запрос, вероятно, выглядит для Oracle примерно так:
SELECT * FROM CLASS WHERE TYPE=Art of War
но это должно выглядеть как
SELECT * FROM CLASS WHERE TYPE='Art of War'
Есть два способа исправить это:
Соберите запрос с символами кавычек вокруг ct
.
Напишите запрос как "SELECT * FROM CLASS WHERE TYPE=?"
, используйте PreparedStatement
вместо Statement
и используйте метод setString
для предоставления значения параметра.
Если все сделано правильно, второй подход является одновременно более безопасным и более эффективным. (Проблема с разбивкой строки запроса и использованием Statement
заключается в том, что вы потенциально делаете себя уязвимым для атак SQL-инъекций.)