Estou dando uma lida aqui. Alguém teria algum exemplo dessa função SUBTR ?No 
exemplo que digitei abaixo esta correto meu raciocínio?  
To: [email protected]
From: [email protected]
Date: Mon, 11 Feb 2013 14:47:54 +0000
Subject: [oracle_br] Re: Duvida
















 



  


    
      
      
        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 [email protected], 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: [email protected]

> 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: [email protected]

> 

> 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/[email protected]/

> 

> ----------------------------------------------------------

> 

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

>





    
     

    
    






                                          

[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/[email protected]/ 
--------------------------------------------------------------------------------------------------------------------------
>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

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [email protected]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a