CREATE OR REPLACE Function FN_ARMAR_JERARQUIA (v_index number, v_tabla varchar2) RETURN varchar2 AS v_tabla2 varchar2(100); v_caption varchar2(100); v_parent number; v_index2 number; v_fl_str_hierarchy varchar2(2000); v_sw number; BEGIN v_tabla2 := upper(v_tabla); v_index2 := v_index; v_sw := 0; v_parent := 0; IF upper(v_tabla2) = 'ASDK_CATEGORY' THEN select nvl(ctg_parent,0), ctg_caption into v_parent, v_fl_str_hierarchy from ASDK_CATEGORY Where ctg_index = v_index2; if v_parent = 0 then v_sw := 1; end if; While v_sw = 0 loop v_index2 := v_parent; v_parent := 0; select nvl(ctg_parent,0), ctg_caption || '.' || v_fl_str_hierarchy into v_parent, v_fl_str_hierarchy from ASDK_CATEGORY Where ctg_index = v_index2; if v_parent = 0 then v_sw := 1; end if; end loop; ELSIF upper(v_tabla2) = 'FILTERTREE' then select nvl(ftr_parent,0), ftr_caption INTO v_parent, v_fl_str_hierarchy from FILTERTREE Where ftr_index = v_index2; if v_parent = 0 THEN v_sw := 1; end IF; While v_sw = 0 loop v_index2 := v_parent; v_parent := 0; select nvl(ftr_parent,0), ftr_caption || '.' || v_fl_str_hierarchy into v_parent, v_fl_str_hierarchy from FILTERTREE Where ftr_index = v_index2; if v_parent = 0 then v_sw := 1; end if; end loop; ELSIF upper(v_tabla2) = 'CI_TYPE_ITEM' then select nvl(FL_INT_PARENT_ID,0), FL_STR_TYPE_NAME INTO v_parent, v_fl_str_hierarchy from CI_TYPE_ITEM Where FL_INT_TYPE_ITEM_ID = v_index2; if v_parent = 0 THEN v_sw := 1; end IF; While v_sw = 0 loop v_index2 := v_parent; v_parent := 0; select nvl(FL_INT_PARENT_ID,0), FL_STR_TYPE_NAME || '.' || v_fl_str_hierarchy into v_parent, v_fl_str_hierarchy from CI_TYPE_ITEM Where FL_INT_TYPE_ITEM_ID = v_index2; if v_parent = 0 then v_sw := 1; end if; end loop; END IF; return (v_fl_str_hierarchy); END FN_ARMAR_JERARQUIA; /