PL/SQL里面的一个函数
有这样的一些字符串adfa_df_445等
我想找到两个"_"之间的字符,请问用PL/SQL里的内置函数能解决吗?
多谢!
问题点数:20、回复次数:8Top
1 楼billjjg(梦的河流)回复于 2002-04-23 12:15:47 得分 0
select substr('adfa_df_445',instr('adfa_df_445','_')+1, instr('adfa_df_445','_',instr('adfa_df_445','_'))-instr('adfa_df_445','_')) from dual;Top
2 楼billjjg(梦的河流)回复于 2002-04-23 12:16:37 得分 5
应该再-1
:
select substr(
'hello_jin_wel',
instr('hello_jin_wel','_')+1,
instr('hello_jin_wel','_',instr('hello_jin_wel','_')+1)-instr('hello_jin_wel','_')-1
) from dualTop
3 楼ruomu1977(若木)回复于 2002-04-23 12:24:27 得分 0
我的那些字符串都是动态的,也就是说我不知道他们的具体内容,只知道肯定包含两个"_",我想取出他们之间的值
怎么办?Top
4 楼billjjg(梦的河流)回复于 2002-04-23 12:48:05 得分 5
不大明白你的问题:你可以用变量/字段名称 代替 常量 阿?
select substr(
test_col,
instr(test_col,'_')+1,
instr(test_col,'_',instr(test_col,'_')+1)-instr(test_col,'_')-1
) from test_table
Top
5 楼jlandzpa(jlandzpa)回复于 2002-04-23 13:04:44 得分 0
substr和instr结合起来即可!Top
6 楼mycode(不写代码)回复于 2002-04-23 13:45:34 得分 5
内置函数是没有的,可以自己写一个函数,作为存储过程放在Oracle中,以后就可以当作内置函数来用了.Top
7 楼thingsfly(随风)回复于 2002-04-23 14:43:01 得分 5
这样可能简单点:
select substr(
test_col,
instr(test_col,'_')+1,
instr(test_col,'_',1,2)-instr(test_col,'_')-1
) from test_tableTop
8 楼ruomu1977(若木)回复于 2002-04-24 11:44:35 得分 0
郁闷,我的参数里有三个“_”,我现在需要找到第二个和第三个之间的字符,怎么办啊!急!Top




