NIE można odwoływać się do aliasów kolumn w klauzuli SELECT w klauzuli WHERE, a przynajmniej nie w tym samym zapytaniu. Możesz wykonać podzapytanie lub po prostu użyć oryginalnych odwołań do kolumn.
select
bobooks."ID" request,
bobooks."TITLE",
bobooks."AUTHOR",
bogenres."NAME" genre,
bobooks."OWNER",
bostatus."NAME" status,
bolanguages."LANGUAGE" language,
bolanguages2."LANGUAGE" secondary_language
from BO_BOOKS bobooks
inner join
BO_GENRES bogenres on bobooks.genre = bogenres.id
inner join
BO_STATUS bostatus on bobooks.status = bostatus.id
inner join
BO_LANGUAGES bolanguages on bobooks.language = bolanguages.id
left outer join
BO_LANGUAGES bolanguages2 on bobooks.secondary_language = bolanguages2.id
where
(replace(:P19_AUTHOR, ' ', '') = ''
or
bobooks.author like '%'||:P19_AUTHOR||'%')
AND
(replace(:P19_TITLE, ' ', '') = ''
or
bobooks.title like '%'||:P19_TITLE||'%')
AND
(:P14_LANGUAGE = 'all'
or
bolanguages."LANGUAGE" = :P19_LANGUAGE
or
bolanguages2."LANGUAGE" = :P19_LANGUAGE)
AND
(:P19_GENRE = 'all'
or
bogenres."NAME" = :P19_GENRE)
AND
(replace(:P19_OWNER, ' ', '') = ''
or
bobooks.owner like '%'||:P19_OWNER||'%');