如果你對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 函數的描述,希望會給你帶來一些幫助在此方面。