看到返回TABLE的函数,还有不错的分解字串。
2010-01-26 17:26
211 查看
oracle的split函数
oracle 2008-07-22 14:18 阅读1488 评论0
字号: 大大 中中 小小
PL/SQL 中没有split函数,需要自己写。
代码:
create or replace type type_split as table of varchar2(50); --创建一个 type ,如果为了使split函数具有通用性,请将其size 设大些。
--创建function
create or replace function split
(
p_list varchar2,
p_sep varchar2 := ','
) return type_split pipelined
is
l_idx pls_integer;
v_list varchar2(50) := p_list;
begin
loop
l_idx := instr(v_list,p_sep);
if l_idx > 0 then
pipe row(substr(v_list,1,l_idx-1));
v_list := substr(v_list,l_idx+length(p_sep));
else
pipe row(v_list);
exit;
end if;
end loop;
return;
end split;
测试:
SQL> select * from table(split('northsnow,塞北的雪',','));
COLUMN_VALUE
--------------------------------------------------
northsnow
塞北的雪
oracle 2008-07-22 14:18 阅读1488 评论0
字号: 大大 中中 小小
PL/SQL 中没有split函数,需要自己写。
代码:
create or replace type type_split as table of varchar2(50); --创建一个 type ,如果为了使split函数具有通用性,请将其size 设大些。
--创建function
create or replace function split
(
p_list varchar2,
p_sep varchar2 := ','
) return type_split pipelined
is
l_idx pls_integer;
v_list varchar2(50) := p_list;
begin
loop
l_idx := instr(v_list,p_sep);
if l_idx > 0 then
pipe row(substr(v_list,1,l_idx-1));
v_list := substr(v_list,l_idx+length(p_sep));
else
pipe row(v_list);
exit;
end if;
end loop;
return;
end split;
测试:
SQL> select * from table(split('northsnow,塞北的雪',','));
COLUMN_VALUE
--------------------------------------------------
northsnow
塞北的雪
相关文章推荐
- 將字串按指定的分割分成多條記錄,返回table的記錄
- 写一个函数,用来把一个字符串用指定的字符作为分隔符分割成若干个子串输出 | 写一个函数,用来返回一个字符串中重复出现的最长字串的长度及其开始地址
- (原创) cocos2d-x 3.0+ lua 学习和工作(4) : 公共函数(5): 返回指定表格中的所有键(key):table.keys
- oracle函数返回table类型结果集
- 展讯MMI 静态创建窗口? MMK_CreateWin()函数返回MMK_CreateWinTable()函数返回AppletCreateWindow()
- 浅谈Oracle函数返回Table集合
- ABAP--如何返回'F4IF_INT_TABLE_VALUE_REQUEST'函数隐含的字段
- plsql返回记录集的方法利用table()函数—之二
- Oracle table()函数查询函数返回的结果集
- ABAP--如何返回'F4IF_INT_TABLE_VALUE_REQUEST'函数隐含的字段
- Oracle中基本的函数(返回table)
- 浅谈Oracle函数返回Table集合
- ABAP--如何返回'F4IF_INT_TABLE_VALUE_REQUEST'函数隐含的字段
- Oracle函数返回Table集合
- Sql server 的表值函数是返回一个Table类型,table类型相当与一张存储在内存中的一张虚拟表。
- Oracle包体,包含存储过程,自定义函数(function),自定义类型(table),用函数返回自定义类型(相当于返回一张表)
- ABAP--如何返回'F4IF_INT_TABLE_VALUE_REQUEST'函数隐含的字段
- ABAP--如何返回'F4IF_INT_TABLE_VALUE_REQUEST'函数隐含的字段
- 返回table数据类型的函数相关的问题
- c++ 函数返回引用