如何使用用户定义的函数作为布尔表达式?
例如REGEXP_LIKE()
用作布尔表达式的函数,对不对?
... WHERE REGEXP_LIKE() ...
但是如何使它成为用户定义的功能呢?当我的函数返回BOOLEAN类型时,然后,当我调用此函数时,由于纯SQL无法使用BOOLEAN类型而出现错误。
聚苯乙烯
因此,我这样做:我的函数返回VARCHAR2
类型:即'TRUE'
or 'FALSE'
,然后在SQL中使用:... WHERE my_function() = 'TRUE' ...
这是模拟布尔类型的正确方法吗?还是存在更多更好的解决方案?
否。这在Oracle中可能会造成混淆,但是SQL虽然处理布尔表达式,但不知道布尔数据类型。与过程PL / SQL不同,在过程PL / SQL中可以使用布尔数据类型。
在Oracle中,SQL和PL / SQL由不同的引擎评估。这些引擎使用相似的数据类型,但不相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句