- 第一版: 以‘,’分隔,结尾带‘,’
create or replace function get_num(s varchar2) return VARCHAR2 is
str varchar2(4000);
num_start int := substr(s, 0, instr(s, '-') - 1);--开始位置
num_end int := substr(s, instr(s, '-') + 1, length(s));--结束位置
begin
while num_start<=num_end LOOP
str:= str||num_start;
num_start:=num_start+1;
end loop;
return(str);
end get_num;
~~~sql
# 示例
select get_num('1-10') as gs from dual;
第二版: 以‘,’分隔,结尾不带‘,’
create or replace function get_Num(s varchar2) return VARCHAR2 is
str varchar2(4000);
num_start int := substr(s, 0, instr(s, '-') - 1);--开始位置
num_end int := substr(s, instr(s, '-') + 1, length(s));--结束位置
begin
for i in num_start .. num_end-1 loop
str:=str||i||',';
end loop;
return(str||num_end);
end get_Num;