Oracle 一个分隔字符串的例子
2012-04-24 11:28
106 查看
原文位于:http://www.itpub.net/viewthread.php?tid=610297&extra=page%3D2%26amp%3Bfilter%3Ddigest&page=2
把'a|||b|||c'字符串分隔成
a
b
c
create or replace function f_test(var_str in string) return t_ret_table is
var_out t_ret_table;
var_tmp varchar2(2000);
var_element varchar2(2000);
begin
var_tmp := var_str;
var_out := t_ret_table();
while instr(var_tmp,'|||')>0 loop
var_element := substr(var_tmp,1,instr(var_str,'|||')-1);
var_tmp := substr(var_tmp,instr(var_str,'|||')+3,length(var_tmp));
var_out.extend(1);
var_out(var_out.count) := var_element;
end loop;
var_out.extend(1);
var_out(var_out.count) := var_tmp;
return var_out;
end f_test;
/
set serverout on
declare
aa t_ret_table;
begin
aa := f_test('a|||b|||c');
for i in 1..aa.count loop
dbms_output.put_line(aa(i));
end loop;
end;
/
create or replace function f_test(var_str in string) return t_ret_table PIPELINED
as
var_tmp varchar2(2000);
var_element varchar2(2000);
begin
var_tmp := var_str;
while instr(var_tmp,'|||')>0 loop
var_element := substr(var_tmp,1,instr(var_str,'|||')-1);
var_tmp := substr(var_tmp,instr(var_str,'|||')+3,length(var_tmp));
pipe row(var_element);
end loop;
pipe row(var_tmp);
return;
end f_test;
/
select * from table(f_test('a|||b|||c'));
把'a|||b|||c'字符串分隔成
a
b
c
create or replace function f_test(var_str in string) return t_ret_table is
var_out t_ret_table;
var_tmp varchar2(2000);
var_element varchar2(2000);
begin
var_tmp := var_str;
var_out := t_ret_table();
while instr(var_tmp,'|||')>0 loop
var_element := substr(var_tmp,1,instr(var_str,'|||')-1);
var_tmp := substr(var_tmp,instr(var_str,'|||')+3,length(var_tmp));
var_out.extend(1);
var_out(var_out.count) := var_element;
end loop;
var_out.extend(1);
var_out(var_out.count) := var_tmp;
return var_out;
end f_test;
/
set serverout on
declare
aa t_ret_table;
begin
aa := f_test('a|||b|||c');
for i in 1..aa.count loop
dbms_output.put_line(aa(i));
end loop;
end;
/
create or replace function f_test(var_str in string) return t_ret_table PIPELINED
as
var_tmp varchar2(2000);
var_element varchar2(2000);
begin
var_tmp := var_str;
while instr(var_tmp,'|||')>0 loop
var_element := substr(var_tmp,1,instr(var_str,'|||')-1);
var_tmp := substr(var_tmp,instr(var_str,'|||')+3,length(var_tmp));
pipe row(var_element);
end loop;
pipe row(var_tmp);
return;
end f_test;
/
select * from table(f_test('a|||b|||c'));
相关文章推荐
- 一个分隔字符串的例子
- oracle中PLSQL存储过程中如何使用逗号分隔的集合(逗号分隔字符串转换为一个集合)
- 一个Oracle格式化字符串的函数
- Oracle使用split和splitstr函数批量分隔字符串
- 一个用 Oracle 函数索引进行优化的例子
- Oracle 中如何判断一个字符串是否为数字
- mysql判断表里面一个逗号分隔的字符串是否包含单个字符串
- Oracle文档关于模块重载的一个例子,其实是可以。
- oracle 分组求和一个小例子
- oracle里判断一个字段是不是数据或者字符串
- oracle数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中
- Oracle 的一个非常好的触发器例子
- Oracle 触发器中,如果取一个包含空格VARCHAR2类型的字符串,空格后的内容取不到
- Oracle使用split和splitstr函数批量分隔字符串
- 快速分隔一个字符串并存入到List中
- 编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,用空格来分隔单词。
- Oracle反向字符截取逗號分隔字符串
- 字符串空格的压缩:给定一个字符串,将其中连续出现的空格压缩为1个后,将其中已空格分隔的每个字符串逆序打印出来
- 【oracle】一个空字符串:''引发的”命案“
- 一个 Oracle 存储过程编写的入门级例子