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] >