I'm using: https://hub.docker.com/r/gvenzl/oracle-free
Trying out BOOLEAN
types, I can see that this works:
with b (b) as (select true)
select not b
from b;
But this doesn't:
with b (b) as (select true)
select not coalesce(null, b)
from b;
It fails with:
SQL Error [920] [42000]: ORA-00920: invalid relational operator
Same with other expressions based on BOOLEAN
columns:
with b (b) as (select true)
select not (case b when true then true else false end)
from b;
I'd say this is a bug or missing feature/implementation, given that I've never encountered any other implementation with such a limitation (e.g. PostgreSQL, and many others), nor does the SQL standard limit BOOLEAN
expressions this way.