您可以这样编写自己的包装器:
CREATE OR REPLACe FUNCTION my_bool_to_str(f varchar2) RETURN VARCHAR2 IS b varchar2(2);BEGIN EXECUTE IMMEDIATE 'declare bl boolean; begin bl := ' || f || '; if bl then :1 := ''y''; else :1 := ''n''; end if; end;' using out b; return b;END;
然后,您可以这样称呼它:
SELECT part_no, my_bool_to_str('stock_pkg.is_in_stock('|| part_no|| ')') in_stockFROM parts_table与包装器的区别在于,它获取的是varchar作为输入,而不是SQL引擎无法识别的布尔值



