COLLATE Latin1_General_CS_AS
не е синтаксис на оракул, изглежда като sql сървър нещо
вашият основен sql може да бъде:
ResultSet rs = statement.executeQuery("SELECT NAMES, AUTHOR, ID FROM BOOKS WHERE upper(NAMES) LIKE upper('%"+word+"%') OR upper(AUTHOR) LIKE upper('%"+word+"%') ");
но това е сканиране на пълна таблица/пълен индекс, така че няма да е бързо. за бързо търсене на низ, Oracle има oracle текст . Предлагам ви да прочетете това и да приложите текстов индекс, ако трябва да извършвате този тип неограничени търсения (на големи таблици).