COLLATE Latin1_General_CS_AS
nie jest składnią Oracle, wygląda jak serwer sql
Twój podstawowy sql może wyglądać tak:
ResultSet rs = statement.executeQuery("SELECT NAMES, AUTHOR, ID FROM BOOKS WHERE upper(NAMES) LIKE upper('%"+word+"%') OR upper(AUTHOR) LIKE upper('%"+word+"%') ");
ale niezależnie od tego jest to pełne skanowanie tabeli/pełnego indeksu, więc nie będzie to szybkie. do szybkiego wyszukiwania ciągów Oracle ma tekst Oracle . sugeruję zapoznanie się z tym i zaimplementowanie indeksu tekstowego, jeśli musisz wykonać tego typu nieograniczone wyszukiwania (na dużych tabelach).