折雨的天空
oracle中的strpos和substr同等功能的结合的一种用法
2020-7-29 我好笨


通常语言提供substr字符串截取,配合strpos之类的位置判断函数,可以很高效的获取想要的内容。



当然oracle 也是支持的,只是函数名称不叫strpos了,substr的名字是一样的。



下面是一个样例,从注释中,获取中文逗号的位置,并截取从0开始到中文逗号位置的注释内容,SQL代码如下:








[#zeyu#]



select b.comments,substr(b.comments,0,instr(b.comments,',',1,1)-1),a.data_type,a.data_length from user_tab_columns a LEFT JOIN user_col_comments  b on a.column_name=b.column_name  where  a.Table_Name='TEST' and b.table_name='TEST' ORDER BY a.COLUMN_id;





[/#zeyu#]




但是,存在一个弊端,如果注释中没有包含instr的字符,则会返回空。

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容