注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

享受编码

    的乐趣

 
 
 

日志

 
 

oracle 实现 split 函数  

2011-03-23 22:05:39|  分类: DataBase |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
  1. CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000);
  2. CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2)
  3. RETURN ty_str_split
  4. IS
  5. j INT := 0;
  6. i INT := 1;
  7. len INT := 0;
  8. len1 INT := 0;
  9. str VARCHAR2 (4000);
  10. str_split ty_str_split := ty_str_split ();
  11. BEGIN
  12. len := LENGTH (p_str);
  13. len1 := LENGTH (p_delimiter);
  14. WHILE j < len
  15. LOOP
  16. j := INSTR (p_str, p_delimiter, i);
  17. IF j = 0
  18. THEN
  19. j := len;
  20. str := SUBSTR (p_str, i);
  21. str_split.EXTEND;
  22. str_split (str_split.COUNT) := str;
  23. IF i >= len
  24. THEN
  25. EXIT;
  26. END IF;
  27. ELSE
  28. str := SUBSTR (p_str, i, j - i);
  29. i := j + len1;
  30. str_split.EXTEND;
  31. str_split (str_split.COUNT) := str;
  32. END IF;
  33. END LOOP;
  34. RETURN str_split;
  35. END fn_split;
  36. SELECT DISTINCT * FROM TABLE(fn_split('a,b,c,a,v,c',','));
  评论这张
 
阅读(353)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017