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;
/