如果你对Oracle创建Split 和Map 函数感到很是很郁闷时。你就可以浏览下面的文章了,我在一个信誉度很好的网站找到一个关于Oracle创建Split 和Map 函数的相关代码的介绍,以下文章主要是对其代码的介绍。供大家分享。
在Oracle创建Split 和Map 函数
createorreplaceTYPET_VARCHAR2_LISTASTABLEOFVARCHAR2(200); / createorreplace FUNCTIONF_SPLIT_STRING( p_sourceVARCHAR2,p_delimiterVARCHAR2 )RETURNT_VARCHAR2_LIST AS v_layer_rate_listT_VARCHAR2_LIST:=T_VARCHAR2_LIST(); var_tmpVARCHAR2(4000); var_elementVARCHAR2(4000); BEGIN var_tmp:=p_source; WHILEinstr(var_tmp,p_delimiter)>0LOOP 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_elementISNOTNULL)AND(var_element!=p_delimiter)THEN v_layer_rate_list.extend(1); v_layer_rate_list(v_layer_rate_list.count):=var_element; ENDIF; ENDLOOP; IF(var_tmpISNOTNULL)AND(var_tmp!=p_delimiter)THEN v_layer_rate_list.extend(1); v_layer_rate_list(v_layer_rate_list.count):=var_tmp; ENDIF; RETURNv_layer_rate_list; ENDF_SPLIT_STRING; / createorreplace TYPET_STRING_MAPASTABLEOFT_STRING_ENTRY; / createorreplace TYPET_STRING_ENTRYASOBJECT( c_keyVARCHAR2(200),c_valueVARCHAR2(200) ); / createorreplace FUNCTIONf_PARSE_STRING_TO_MAP( p_oringal_stringVARCHAR2,p_entry_delimiterVARCHAR2, p_key_delimeterVARCHAR2 )RETURNT_STRING_MAP AS v_entry_listT_VARCHAR2_LIST; v_string_mapT_STRING_MAP:=T_STRING_MAP(); v_string_entryT_STRING_ENTRY:=T_STRING_ENTRY(NULL,NULL); v_intNUMBER(4); BEGIN v_entry_list:=F_SPLIT_STRING(p_oringal_string,p_entry_delimiter); FORl_entryINv_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; ENDLOOP; RETURNv_string_map; ENDf_PARSE_STRING_TO_MAP; /
相关文章
标签:Oracle