Oracle创建Split 与Map 函数的代码示例

数据库 Oracle
以下的文章是通过Oracle创建Split 和Map 函数的相关代码描述来剖析Oracle创建Split 和Map 函数的实际应用,以下就是相关内容的详细介绍。

如果你对Oracle创建Split 和Map 函数感到很是很郁闷时。你就可以浏览下面的文章了,我在一个信誉度很好的网站找到一个关于Oracle创建Split 和Map 函数的相关代码的介绍,以下文章主要是对其代码的介绍。供大家分享。

在Oracle创建Split 和Map 函数

  1. create or replace TYPE T_VARCHAR2_LIST AS TABLE OF VARCHAR2(200);  
  2. /  
  3. create or replace  
  4. FUNCTION F_SPLIT_STRING(  
  5. p_source VARCHAR2, p_delimiter VARCHAR2  
  6. ) RETURN T_VARCHAR2_LIST  
  7. AS  
  8. v_layer_rate_list T_VARCHAR2_LIST :T_VARCHAR2_LIST();  
  9. var_tmp VARCHAR2(4000);  
  10. var_element VARCHAR2(4000);  
  11. BEGIN  
  12. var_tmp :p_source;  
  13. WHILE instr(var_tmp, p_delimiter)>0 LOOP  
  14. var_element :substr(var_tmp, 1, instr(var_tmp, p_delimiter)-1);  
  15. var_tmp :substr(var_tmp,instr(var_tmp, p_delimiter) + 
    length(p_delimiter),length(var_tmp));  
  16. IF (var_element IS NOT NULL) AND (var_element != p_delimiter) THEN  
  17. v_layer_rate_list.extend(1);  
  18. v_layer_rate_list(v_layer_rate_list.count) :var_element;  
  19. END IF;  
  20. END LOOP;  
  21. IF (var_tmp IS NOT NULL) AND (var_tmp != p_delimiter) THEN  
  22. v_layer_rate_list.extend(1);  
  23. v_layer_rate_list(v_layer_rate_list.count) :var_tmp;  
  24. END IF;  
  25. RETURN v_layer_rate_list;  
  26. END F_SPLIT_STRING;  
  27. /  
  28. create or replace  
  29. TYPE T_STRING_MAP AS TABLE OF T_STRING_ENTRY;  
  30. /  
  31. create or replace  
  32. TYPE T_STRING_ENTRY AS OBJECT (  
  33. c_key VARCHAR2(200), c_value VARCHAR2(200)  
  34. );  
  35. /  
  36. create or replace  
  37. FUNCTION f_PARSE_STRING_TO_MAP(  
  38. p_oringal_string VARCHAR2, p_entry_delimiter VARCHAR2,
     p_key_delimeter VARCHAR2  
  39. ) RETURN T_STRING_MAP  
  40. AS  
  41. v_entry_list T_VARCHAR2_LIST;  
  42. v_string_map T_STRING_MAP :T_STRING_MAP();  
  43. v_string_entry T_STRING_ENTRY :T_STRING_ENTRY(NULL,NULL);  
  44. v_int NUMBER(4);  
  45. BEGIN  
  46. v_entry_list :F_SPLIT_STRING(p_oringal_string, p_entry_delimiter);  
  47. FOR l_entry IN v_entry_list.first..v_entry_list.last  
  48. LOOP  
  49. v_int :instr(v_entry_list(l_entry), p_key_delimeter);  
  50. v_string_entry.c_key :substr(v_entry_list(l_entry), 0, v_int-1);  
  51. v_string_entry.c_value :substr(v_entry_list(l_entry), 
    v_int+length(p_key_delimeter));  
  52. v_string_map.extend;  
  53. v_string_map(v_string_map.count) :v_string_entry;  
  54. END LOOP;  
  55. RETURN v_string_map;  
  56. END f_PARSE_STRING_TO_MAP;  
  57. /  

 

上述的相关内容就是对Oracle创建Split 和Map 函数的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. Oracle undo释放表空间中的操作步骤
  2. Oracle数据库里重复没有用的数据如何删除
  3. Oracle存储过程的用法简介
  4. Oracle to_char的用法描述
  5. Oracle存储过程的开发的介绍
责任编辑:佚名 来源: 互联网
相关推荐

2010-04-15 14:39:56

Oracle创建表空间

2010-04-23 17:20:34

Oracle创建

2011-08-16 19:11:15

Oracle数据库创建Schema

2010-03-29 17:03:48

Oracle创建

2011-08-18 18:34:00

Oracle数据库创建自增字段

2011-04-08 15:50:54

Oracleover函数

2010-04-14 15:01:50

Oracle ASM

2010-04-21 13:31:11

Oracle时间

2010-04-12 17:47:01

Oracle多表查询

2022-10-27 11:36:59

map函数对象

2010-04-15 14:12:20

Oracle 系统操作

2010-04-12 12:30:44

Oracle 安装脚本

2010-04-09 18:15:47

Oracle 字符串

2010-02-05 10:23:09

C++基本函数

2010-04-12 09:26:52

Oracle查询分页

2011-08-12 11:22:53

Oracle存储过程Java

2010-03-19 14:44:30

Python模块级函数

2010-04-13 14:25:24

Oracle问题解决

2011-08-16 16:37:40

Oracle数据库树形查询根节点

2011-08-18 16:42:04

Oracle数据库维护SQL代码示例
点赞
收藏

51CTO技术栈公众号