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