create table traducao_html( ds_cara_text varchar2(1), ds_cara_html varchar2(20), ds_come varchar2(200)) tablespace dados; Alter Table traducao_html Add Constraint I00_traducao_html Primary Key(ds_cara_text) Using Index Tablespace Indices; insert into traducao_html values('á','&'||'aacute;',''); insert into traducao_html values('Á','&'||'Aacute;',''); insert into traducao_html values('ã','&'||'atilde;',''); insert into traducao_html values('Ã','&'||'Atilde;',''); insert into traducao_html values('â','&'||'acirc;',''); insert into traducao_html values('Â','&'||'Acirc;',''); insert into traducao_html values('à','&'||'agrave;',''); insert into traducao_html values('À','&'||'Agrave;',''); insert into traducao_html values('é','&'||'eacute;',''); insert into traducao_html values('É','&'||'Eacute;',''); insert into traducao_html values('ê','&'||'ecirc;',''); insert into traducao_html values('Ê','&'||'Ecirc;',''); insert into traducao_html values('í','&'||'iacute;',''); insert into traducao_html values('Í','&'||'Iacute;',''); insert into traducao_html values('ó','&'||'oacute;',''); insert into traducao_html values('Ó','&'||'Oacute;',''); insert into traducao_html values('õ','&'||'otilde;',''); insert into traducao_html values('Õ','&'||'Otilde;',''); insert into traducao_html values('ô','&'||'ocirc;',''); insert into traducao_html values('Ô','&'||'Ocirc;',''); insert into traducao_html values('ú','&'||'uacute;',''); insert into traducao_html values('Ú','&'||'Uacute;',''); insert into traducao_html values('ç','&'||'ccedil;',''); insert into traducao_html values('Ç','&'||'Ccedil;',''); insert into traducao_html values('º','&'||'ordm;',''); insert into traducao_html values('ª','&'||'ordf;',''); create or replace function fn_traducao_html (p_texto varchar2) return varchar2 is v_novo_texto varchar2(4000); x number(6) := 1; t number(6) := length(p_texto); -- v_char varchar2(50); p1 number(6); p2 number(6); -- cursor c is select ds_cara_html from traducao_html where ds_cara_text = v_char; c_r c%rowtype; -- begin -- while x <= t loop v_char := substr(p_texto,x,1); open c; fetch c into c_r; if c%found then v_char := c_r.ds_cara_html; end if; close c; -- v_novo_texto := v_novo_texto||v_char; -- p1 := x+1; x := x+1; end loop; -- return v_novo_texto; exception when others then return p_texto; end; /