COLLATE Latin1_General_CS_AS
není věcí syntaxe Oracle, vypadá to jako věc sql serveru
vaše základní sql může být:
ResultSet rs = statement.executeQuery("SELECT NAMES, AUTHOR, ID FROM BOOKS WHERE upper(NAMES) LIKE upper('%"+word+"%') OR upper(AUTHOR) LIKE upper('%"+word+"%') ");
ale bez ohledu na to se jedná o skenování celé tabulky/úplného indexu, takže to nebude rychlé. pro rychlé vyhledávání řetězců má Oracle text Oracle . Navrhoval bych, abyste si to přečetli a implementovali textový index, pokud potřebujete provádět tento typ neomezeného vyhledávání (na velkých tabulkách).