REGEXP_LIKE的返回类型

ywjcool 2013-03-08 05:28:34
BOOLEAN是PL/SQL中的类型,ORACLE中不支持,所以下面的语句是错误的

create function my_like(iStr in varchar2, iPattern in varchar2) return boolean
begin
return iStr like iPattern;
end;

select 1 from dual where my_like('aaa','%a%');


但是regexp_like却可以使用,请问它是返回什么类型,为什么就能直接用呢?

select 1 from dual where regexp_like('aaa','[a-z]*')

...全文
438 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
funnyone 2013-03-10
  • 打赏
  • 举报
回复
REGEXP_LIKE返回字符串
善若止水 2013-03-10
  • 打赏
  • 举报
回复
引用 3 楼 ywjcool 的回复:
引用 2 楼 zhaoxiangchong 的回复:没有看懂楼主的意思,楼主的函数写的很是奇怪。 单独是绝对可以执行的,就是一个正则表达式。 就是说 select 1 from dual where my_like('aaa','%a%'); 这句是错误的,其中my_like是自定义的boolean型函数 select 1 from dual where re……
我的理解是这样的,regexp_like是用正则表达式的形式来处理字符类型的数据,返回的就是字符类型的数据。 直接引用就是因为它是oracle的一个函数,并且使用的确实是处理字符串的
ywjcool 2013-03-10
  • 打赏
  • 举报
回复
引用 2 楼 zhaoxiangchong 的回复:
没有看懂楼主的意思,楼主的函数写的很是奇怪。 单独是绝对可以执行的,就是一个正则表达式。
就是说 select 1 from dual where my_like('aaa','%a%'); 这句是错误的,其中my_like是自定义的boolean型函数 select 1 from dual where regexp_like('aaa','[a-z]*') 这句是可以运行的,其中regexp_like('aaa','[a-z]*')是内置函数,他是返回什么类型呢?为什么能直接用呢?
善若止水 2013-03-09
  • 打赏
  • 举报
回复
没有看懂楼主的意思,楼主的函数写的很是奇怪。 单独是绝对可以执行的,就是一个正则表达式。
陈字文 2013-03-09
  • 打赏
  • 举报
回复
有意思...

17,086

社区成员

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

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