设为首页 收藏本站
查看: 736|回复: 0

[经验分享] Oracle创建Split 与Map 函数的代码示例

[复制链接]

尚未签到

发表于 2016-8-7 06:45:45 | 显示全部楼层 |阅读模式
  如果你对Oracle创建Split 和Map 函数感到很是很郁闷时。你就可以浏览下面的文章了,我在一个信誉度很好的网站找到一个关于Oracle创建Split 和Map 函数的相关代码的介绍,以下文章主要是对其代码的介绍。供大家分享。

在Oracle创建Split 和Map 函数


  • create or replace TYPE T_VARCHAR2_LIST AS TABLE OF VARCHAR2(200);  
  • /  
  • create or replace  
  • FUNCTION F_SPLIT_STRING(  
  • p_source VARCHAR2, p_delimiter VARCHAR2  
  • ) RETURN T_VARCHAR2_LIST  
  • AS  

  • v_layer_rate_list T_VARCHAR2_LIST := T_VARCHAR2_LIST();  
  • var_tmp VARCHAR2(4000);  
  • var_element VARCHAR2(4000);  
  • BEGIN  

  • var_tmp := p_source;  

  • WHILE instr(var_tmp, p_delimiter)>0 LOOP  

  • var_element := substr(var_tmp, 1, instr(var_tmp, p_delimiter)-1);  

  • var_tmp := substr(var_tmp,instr(var_tmp, p_delimiter) + 
    length(p_delimiter),length(var_tmp));  
  • IF (var_element IS NOT NULL) AND (var_element != p_delimiter) THEN  
  • v_layer_rate_list.extend(1);  

  • v_layer_rate_list(v_layer_rate_list.count) := var_element;  
  • END IF;  
  • END LOOP;  
  • IF (var_tmp IS NOT NULL) AND (var_tmp != p_delimiter) THEN  
  • v_layer_rate_list.extend(1);  

  • v_layer_rate_list(v_layer_rate_list.count) := var_tmp;  
  • END IF;  
  • RETURN v_layer_rate_list;  
  • END F_SPLIT_STRING;  
  • /  
  • create or replace  
  • TYPE T_STRING_MAP AS TABLE OF T_STRING_ENTRY;  
  • /  
  • create or replace  
  • TYPE T_STRING_ENTRY AS OBJECT (  
  • c_key VARCHAR2(200), c_value VARCHAR2(200)  
  • );  
  • /  
  • create or replace  
  • FUNCTION f_PARSE_STRING_TO_MAP(  
  • p_oringal_string VARCHAR2, p_entry_delimiter VARCHAR2,
     p_key_delimeter VARCHAR2  
  • ) RETURN T_STRING_MAP  
  • AS  
  • v_entry_list T_VARCHAR2_LIST;  

  • v_string_map T_STRING_MAP := T_STRING_MAP();  

  • v_string_entry T_STRING_ENTRY := T_STRING_ENTRY(NULL,NULL);  
  • v_int NUMBER(4);  
  • BEGIN  

  • v_entry_list := F_SPLIT_STRING(p_oringal_string, p_entry_delimiter);  
  • FOR l_entry IN v_entry_list.first..v_entry_list.last  
  • LOOP  

  • v_int := instr(v_entry_list(l_entry), p_key_delimeter);  

  • v_string_entry.c_key := substr(v_entry_list(l_entry), 0, v_int-1);  

  • v_string_entry.c_value := substr(v_entry_list(l_entry), 
    v_int+length(p_key_delimeter));  
  • v_string_map.extend;  

  • v_string_map(v_string_map.count) := v_string_entry;  
  • END LOOP;  
  • RETURN v_string_map;  
  • END f_PARSE_STRING_TO_MAP;  
  • /  

http://database.iyunv.com/art/201004/193775.htm
  
  上述的相关内容就是对Oracle创建Split 和Map 函数的描述,希望会给你带来一些帮助在此方面

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-254054-1-1.html 上篇帖子: 几个简单常用的oracle权限查询脚本 下篇帖子: oracle index fast full scan index full scan 区别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表