Bom, não vou me meter a codificar na prática (não serei desmancha-prazeres 
tirando a sua alegria) mas : Imaginando que o limite da linha é de 100 
caracteres, E QUE o sql*plus já foi configurado com SET LINESIZE 100, temos que 
:
  
  - se a linha é de 100 caracteres e a qtdade de colunas está definida na 
variável V_QTD_COL (digamos), aí 100 / V_QTD_COL te dá o tamanho de cada coluna 
em caracteres , são pedaços desse tamanho da string original que vc vai ter que 
extrair
  - o principal comando para vc extrair uma substring a partir de uma string 
maior é o SUBSTR, consulte a Documentação para vc aprender o uso dele
  - não há um "comando" para quebrar linhas no PL/SQL, nem na package 
DBMS_OUTPUT (que é o que vc está usando) : o que vc vai ter que fazer é OU 
inserir na string a ser exibida o(s) caracteres de controle que sinalizam end 
of line (se o seu sistema operacional for Windows eles são CHR(13) || CHR(10) , 
enquanto no Linux/Unix é só o CHR(13)
- eu entendo que a idéia é que, se o fim da coluna não cai num espaço em 
branco, vc terá que finalizar a substring do SUBSTR no primeiro espaço em 
branco à esquerda da posição de fim da coluna e insreir uma quebra de linha 
após o espaço, fazendo o restante cair na linha de baixo quando exibido : 
provavelmente para isso vc vai precisar do INSTR, que procura a ocorrência de 
um caracter 

  A minha dica portanto é : Dá uma estudada nesses comandos que citei e faz um 
esforço inicial, tenta escrever uma versão dessa lógica : não conseguindo, a 
gente pode palpitar/tentar mostrar onde vc falhou, aí vc escreve uma segunda 
versão, e aí vai até vc conseguir - é Assim que se aprende, por tentativa e 
erro ...
  
   []s
   
     Chiappa

--- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu
>
> 
> 
> Alguem pode me ajudar na resolução desse exercício segue como esta ficando:
> estou usando sql*plus
> DECLAREL_VFRASE VARCHAR2(240) := '&Digite uma Frase.';L_VFRASE_TEST 
> VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA VARCAHR2(240);BEGINFOR 
> L_VFRASE > 100 LOOPIF DBMS_OUTPUT.put_line('Frase é maior que 100 
> caracteres');L_VFRASE := INSTR( L_VFRASE,' ');L_VFRASE_TEST := L_VFRASE + 
> L_VFRASE_TEST;L_VFRASE_TEST := 0;L_VQBRLINHA :=END;
> O exercício e o seguinte:Escreva um programa em que dado uma frase e a 
> quantidade de colunas que podem ser exibidas na tela, faça a quebra de linhas 
> sem quebrar as palavras.
> Por exemplo, se passarmos a frase "Um pequeno jabuti xereta viu dez cegonhas 
> felizes." e pedirmos para ela ser exibida em 20 colunas, teremos como 
> resposta:Um pequeno jabutixereta viu dezcegonhas felizes. 
> Grato 
> To: oracle_br@yahoogrupos.com.br
> From: gabriel_tomazc@...
> Date: Sun, 10 Feb 2013 15:51:36 -0300
> Subject: Re: [oracle_br] Duvida
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>  
> 
> 
> 
>   
> 
> 
>     
>       
>       
>       Gostaria de fazer usando o sql plus.
> 
> 
> 
> -----Original Message-----
> 
> 
> 
> From: Milton Bastos Henriquis Jr.
> 
> Sent: 10 Feb 2013 17:53:04 GMT
> 
> To: oracle_br@yahoogrupos.com.br
> 
> Subject: Re: [oracle_br] Duvida
> 
> 
> 
> Gabriel, explique ONDE você quer fazer isso.
> 
> 
> 
> Vc está estudando o que? SQL?
> 
> Vc quer fazer isso aí no SQL*Plus?
> 
> 
> 
> 2013/2/9 gabriel Tomaz gabriel_tomazc@...>
> 
> 
> 
> > **
> 
> >
> 
> >
> 
> >
> 
> > Caros , gostaria de saber se podem me ajudar estou iniciando com Oracle e
> 
> > estou resolvendo alguns exercícios para aprimorar meus conhecimentos. Estou
> 
> > com o seguinte dificuldade:
> 
> > Dado uma frase e a quantidade de colunas que podem ser exibidas na tela,
> 
> > faça a quebra de linhas sem quebrar as palavras.
> 
> > Gostaria de saber se existe algum comando para fazer a quebra de linha e
> 
> > como ficaria meu bloco?
> 
> > desde já agradeço.
> 
> >
> 
> > [As partes desta mensagem que não continham texto foram removidas]
> 
> >
> 
> >
> 
> >
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> ------------------------------------
> 
> 
> 
> ----------------------------------------------------------
> 
> >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
> >responsabilidade de seus remetentes.
> 
> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> 
> ----------------------------------------------------------
> 
> >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
> >Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
> >http://www.oraclebr.com.br/
> 
> ---------------------------------------------------------- Links do Yahoo! 
> Grupos
> 
> 
> 
> 
> 
>     
>      
> 
>     
>     
> 
> 
> 
> 
> 
> 
>                                         
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a