create or replace
function fnc_word_wrap( p_string in varchar2, p_len in number default 65 )
return varchar2
as
l_string long default replace( p_string || chr(10), chr(9), ' ' );
l_result long default NULL;
l_piece long;
l_ws varchar2(25) default ' ' || chr(9);
l_sep varchar2(5) default NULL;
n number;
begin
loop
exit when l_string is NULL;
n := instr( l_string, chr(10) );
l_piece := substr( l_string, 1, n-1 );
l_string := substr( l_string, n+1 );
loop
exit when l_piece is NULL;
n := length(l_piece);
if ( n > p_len ) then
n := instr( substr(
translate(l_piece,l_ws,rpad(' ',length(l_ws))),
1, p_len ), ' ', -1);
if ( nvl(n,0) = 0 ) then
n := p_len;
end if;
end if;
l_result := l_result || l_sep || substr( l_piece, 1, n );
l_sep := chr(10);
l_piece := substr( l_piece, n+1 );
end loop;
end loop;
return l_result;
end;
/
SQL> select fnc_word_wrap('Bom dia, estamos testando essa função que deve deixar esse texto em mais
de uma linha',30) texto from dual
2 /
TEXTO
--------------------------------------------------------------------------------
Bom dia, estamos testando
essa função que deve deixar
esse texto em mais de uma
linha
SQL>
[Dica] FNC_WORD_WRAP
- dr_gori
- Moderador
- Mensagens: 5018
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Não sei qual é a origem desse script, estava gravado entre os meus emails de dicas-interessantes...
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes