如果你对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;
- /
上述的相关内容就是对Oracle创建Split 和Map 函数的描述,希望会给你带来一些帮助在此方面。
【编辑推荐】