请问oracle怎么知道一个函数的返回值是true还是false

nokiarookie 2013-08-21 06:06:30
比如说函数 DUMMY_PACKAGE.DUMMY_FUNCTION('xxxx')的返回值是个布尔型,
怎么才能知道返回值是true还是false呢,
试了一下select DUMMY_PACKAGE.DUMMY_FUNCTION('xxxx') from dual,但是报错了,不能通过一句简单的select文来获得布尔型的值么?

期待高手指导。谢谢!
...全文
1063 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZiSheng 2013-08-23
  • 打赏
  • 举报
回复
引用 4 楼 forgetsam 的回复:
select nvl(max('true'),'false') tf from dual where DUMMY_PACKAGE.DUMMY_FUNCTION('xxxx')
这个应该是可以的,是不是你的函数有问题???

SQL> select nvl(max('true'),'false') tf from dual where 1=1;

TF
----------
true

SQL> select nvl(max('true'),'false') tf from dual where 1=0;

TF
----------
false
zhumingxu1984 2013-08-23
  • 打赏
  • 举报
回复
引用 6 楼 nokiarookie 的回复:
[quote=引用 3 楼 zhumingxu1984 的回复:]
这个查询可以放在where中的吧,就像下面一样:
select 1 from dual where regexp_like('aabbbcc','bbb');
可以返回一行数据
而select 1 from dual where regexp_like('aabbbcc','1111');
则不返回数据
不好使。。[/quote]


这个思路应该是可以的哈,这是我运行结果截图,仅供参考
cowboyhn 2013-08-23
  • 打赏
  • 举报
回复
布尔类型可以用在PL/SQL中,但不能用在SQL中,你可以修改下函数的返回类型,用0、1代替。
forgetsam 2013-08-22
  • 打赏
  • 举报
回复
select nvl(max('true'),'false') tf from dual where DUMMY_PACKAGE.DUMMY_FUNCTION('xxxx')
zhumingxu1984 2013-08-22
  • 打赏
  • 举报
回复
这个查询可以放在where中的吧,就像下面一样: select 1 from dual where regexp_like('aabbbcc','bbb'); 可以返回一行数据 而select 1 from dual where regexp_like('aabbbcc','1111'); 则不返回数据
u010412956 2013-08-22
  • 打赏
  • 举报
回复
布尔型在oracle中不是有效的数据类型。 只能在pl/sql里面使用而已。 因为你连select true from dual 都不能。。
nokiarookie 2013-08-22
  • 打赏
  • 举报
回复
自己先顶一下
nokiarookie 2013-08-22
  • 打赏
  • 举报
回复
引用 3 楼 zhumingxu1984 的回复:
这个查询可以放在where中的吧,就像下面一样: select 1 from dual where regexp_like('aabbbcc','bbb'); 可以返回一行数据 而select 1 from dual where regexp_like('aabbbcc','1111'); 则不返回数据
不好使。。
nokiarookie 2013-08-22
  • 打赏
  • 举报
回复
引用 4 楼 forgetsam 的回复:
select nvl(max('true'),'false') tf from dual where DUMMY_PACKAGE.DUMMY_FUNCTION('xxxx')
完全不好使。。。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧