How to use BOOLEAN type in SELECT statement

ora-00904, oracle, oracle10g, plsql, sql

Solution

You can build a wrapper function like this:

function get_something(name in varchar2,
                   ignore_notfound in varchar2) return varchar2
is
begin
    return get_something (name, (upper(ignore_notfound) = 'TRUE') );
end;

then call:

select get_something('NAME', 'TRUE') from dual;

It's up to you what the valid values of ignore_notfound are in your version, I have assumed 'TRUE' means TRUE and anything else means FALSE.

Problem

I have a PL/SQL function with BOOLEAN in parameter: ``` function get_something(name in varchar2, ignore_notfound in boolean); ``` This function is a part of 3rd party tool, I cannot change this. I would like to use this function inside a SELECT statement like this: ``` select get_something('NAME', TRUE) from dual; ``` This does not work, I get this exception: ORA-00904: "TRUE": invalid identifier As I understand it, keyword `TRUE` is not recognized. How can I make this work?

Original source