Alguém sabe informar qual seria o tipo dessas variáveis L_VQBRLINHA,
L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase se alguém quiser fazer algum
ajustar a melhorar o código fica a vontade.
DECLARE
L_VFRASE VARCHAR2(240) := '&Digite uma Frase.';
L_VFRASE_TEST VARCHAR2(240); L_VFRASE_NOVO VARCHAR2(240);
L_VQBRLINHA VARCAHR2(240); L_valor_novo VARCAHR2(240);
L_TESTE_QBR VARCAHR2(240); L_FRA_cert
VARCAHR2(240); L_frase VARCAHR2(240); L_VFRASE_TEST1
VARCHAR2(240);
BEGIN
FOR L_VFRASE > 100 LOOP IF 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 := L_VFRASE + L_valor_novo;
L_VQBRLINHA := -1; L_TESTE_QBR :=
SUBSTR(L_FRA_CERT,L_valor_novo); L_FRASE :=
SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));
IF L_VQBRLINHA <10 then
L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);
END IF: dbms_output.put_line(L_VFRASE); dbms_output.put_line
(L_TESTE_QBR); dbms_output.put_line (L_FRASE);
dbms_output.put_line(L_VQBRLINHA);
END IF; END LOOP:END;
To: oracle_br@yahoogrupos.com.br
From: ro.wars...@gmail.com
Date: Mon, 11 Feb 2013 15:04:13 -0200
Subject: Re: [oracle_br] Re: Duvida
Sugestão, antes de tenta executa no SQL*Plus, coloca o teu programa em um
editor tipo bloco de notas e verifica ele. Aí vai começar a aparecer os
erros.
Usa a identação para melhorar a leitura do programa.
[]´s
Roberto
Em 11 de fevereiro de 2013 14:54, gabriel Tomaz
gabriel_tom...@hotmail.com>escreveu:
>
> Qual seria o tipo de dados correto?
>
> To: oracle_br@yahoogrupos.com.br
> From: ro.wars...@gmail.com
> Date: Mon, 11 Feb 2013 14:47:57 -0200
> Subject: Re: [oracle_br] Re: Duvida
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> Gabriel,
>
>
>
> Antes de mais nada, esse teu código está funcionando?
>
> Dando uma olhada aqui eu reparei que:
>
> - a declaração das
>
> variáveis L_VQBRLINHA, L_valor_novo, L_TESTE_QBR, L_FRA_cert e L_frase
>
> estão incorretas - o tipo de dados foi escrito errado;
>
> - está faltando END LOOP e END IF;
>
>
>
> Corrige esse itens, executa o teu programa e se tiver dúvida posta de novo,
>
> com o programa funcionando, como está sendo a saída e como tu
>
> gostaria\entende que deveria ser.
>
>
>
> []´s
>
> Roberto
>
>
>
> Em 11 de fevereiro de 2013 14:42, gabriel Tomaz
>
> gabriel_tom...@hotmail.com>escreveu:
>
>
>
> >
>
> > Com base no uso da SUBSTR alguém poderia validar ou aperfeiçoar o código
>
> > ou da dicas para melhorar.
>
> >
>
> > DECLARE
>
> > L_VFRASE VARCHAR2(240) := '&Digite uma Frase.';L_VFRASE_TEST
>
> > VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBRLINHA
>
> > VARCAHR2(240);L_valor_novo VARCAHR2(240);L_TESTE_QBR
>
> > VARCAHR2(240);L_FRA_cert VARCAHR2(240);L_frase
>
> > VARCAHR2(240);L_VFRASE_TEST1 VARCHAR2(240);
>
> >
>
> > BEGIN
>
> > FOR 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
>
> > := L_VFRASE + L_valor_novo;L_VQBRLINHA :=
>
> > -1;L_TESTE_QBR := SUBSTR(L_FRA_CERT,L_valor_novo);L_FRASE
>
> > := SUBSTR(L_FRA_CERT,L_VALOR_NOVO + LENGTH(L_FRA_CERT));
>
> > IF L_VQBRLINHA <10 then
>
> > L_L_TESTE_QBR := (CONCAT(L_VFRASE_TEST1,''),L_TESTE_QBR);
>
> > END IF:dbms_output.put_line(L_VFRASE);dbms_output.put_line
>
> > (L_TESTE_QBR);dbms_output.put_line (L_FRASE);
>
> > dbms_output.put_line(L_VQBRLINHA);
>
> > END;
>
> > CC: oracle_br@yahoogrupos.com.br
>
> > To: oracle_br@yahoogrupos.com.br
>
> > From: alisson...@yahoo.com.br
>
> > Date: Mon, 11 Feb 2013 13:24:44 -0200
>
> > Subject: Re: [oracle_br] Re: Duvida
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> >
>
> > Select subtr('teste',0,1) from dual;
>
> >
>
> >
>
> >
>
> > Nesse caso o resultado seria a letra 't'
>
> >
>
> >
>
> >
>
> > Enviado via iPhone Alisson Luz
>
> >
>
> >
>
> >
>
> > Em 11/02/2013, às 13:56, gabriel Tomaz gabriel_tom...@hotmail.com>
>
> > escreveu:
>
> >
>
> >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > > 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: oracle_br@yahoogrupos.com.br
>
> >
>
> > > From: jlchia...@yahoo.com.br
>
> >
>
> > > 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 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]
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > >
>
> >
>
> > > [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]
>
> >
>
> >
>
> >
>
> > ------------------------------------
>
> >
>
> >
>
> > ----------------------------------------------------------
>
> > >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]
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> [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]
[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
<*> 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:
oracle_br-unsubscr...@yahoogrupos.com.br
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html