Gabriel,

Erros fazem parte do aprendizado, como disseram os colegas que responderam 
antes. Mas antes de escrever código, vc precisa estar bom em lógica de 
programação (algoritmo), senão vai rolar muita dúvida.

Vi você sofrer muito mandando mensagens na lista e ficou até difícil entender o 
que vc queria fazer, pois sua descrição do problema não foi muito clara e você 
escreveu código que não faz muito sentido, pois declarou variável VARCHAR2 e 
realizou operação numérica (o tipo deveria ser NUMBER).

Bem, escrevi um códigozinho bem simples para separar uma frase em palavras e 
mostrar cada palavra em uma linha, é isto que vc quer fazer?

Use-o como guia, mas procure estudar e pesquisar em sites de CODE SAMPLE PL/SQL 
para conhecer os recursos da linguagem.


-- Created on 14/2/2013 by EDERSON 
-- Método "cortando linguiça"
-- Separador de palavras usado foi um espaco
set serveroutput on;
declare 
w_sql   VARCHAR2(240) := '&Digite_uma_Frase.';
w_piece VARCHAR2(20);
n       number;
p       number :=0;
begin
  w_sql := w_sql || ' ';
  if length(w_sql) < 100 then
     loop exit when w_sql is NULL;
       n := instr( w_sql, ' ' );
       w_piece := substr( w_sql, 1, n-1 );  --'pescou' a primeira parte
       w_sql := substr( w_sql, n+1 );       --contem o restante da string
       p:=p+1;
       dbms_output.put_line('Pedaco ' || p || ' : ' || w_piece); 
     end loop;
  else
     dbms_output.put_line('A frase tem ' || length(w_sql) || ' e o máximo são 
100 caracteres');
  end if;
end;


Ederson Elias
DBA Oracle
http://br.linkedin.com/pub/ederson-elias/24/8b/8b0



--- Em oracle_br@yahoogrupos.com.br, gabriel Tomaz  escreveu
>
> Sim.
> 
> -----Original Message-----
> 
> From: Eduardo Schurtz
> Sent: 12 Feb 2013 01:56:37 GMT
> To: oracle_br@yahoogrupos.com.br
> Subject: Re: [oracle_br] Re: Duvida
> 
> Consegue mandar seu código FORMATADO com comentários seus nos principais
> pontos, explicando-os?
> 
> 
> --
> Eduardo Schurtz
> 
> 
> 2013/2/11 gabriel Tomaz 
> 
> > **
> >
> >
> >
> > Obrigado pela ajuda pessoal estou apenas estudando e fazendo alguns
> > exercícios.Mas valeu pelas dicas vou me aprimorar mais meu SQL e minha
> > logica.Mas nesse caso como ficaria a resolução desse exercício?
> > > To: oracle_br@yahoogrupos.com.br
> > > From: eduardo.schurtz@...
> > > Date: Mon, 11 Feb 2013 23:19:22 -0200
> >
> > > Subject: Re: [oracle_br] Re: Duvida
> > >
> > > Gabriel, dei uma olhada no seu código e vi que você está cometendo erros
> > > muito básicos de programação:
> > >
> > > IF sem condição...
> > > WHILE sem pé nem cabeça... e infinito...
> > > Inicializando uma variável com texto, depois jogando valores numéricos
> > por
> > > cima...
> > >
> > > Acho que você deveria dar uma estudada no básico antes de começar a
> > > escrever código... Pode até brincar no código, mas antes de perguntar em
> > um
> > > grupo na Internet, deveria no mínimo dar uma pesquisada/estudada... e só
> > > perguntar se não conseguir mais andar para nenhum lado! Tem erros muito
> > > básicos aí...
> > >
> > > Peguei seu código, dei uma formatada e coloquei alguns comentários, pode
> > > pegar no link abaixo:
> > >
> > > https://dl.dropbox.com/u/6848776/query_gabriel.sql
> > >
> > > Att,
> > >
> > >
> > >
> > > --
> > > Eduardo Schurtz
> > >
> > >
> > > 2013/2/11 gabriel Tomaz gabriel_tomazc@...>
> > >
> > > > **
> >
> > > >
> > > >
> > > >
> > > > Uma das alterações que fiz foi colocar um while mas também não deu
> > certo,
> > > > se alguém pode ajudar
> > > >
> > > > BEGINWHILE L_cont < Length(L_VFRASE)+ 100
> > LOOPDBMS_OUTPUT.put_line('Frase
> > > > é maior que 100 caracteres'); WHILE L_VFRASE > 100 LOOPIF L_VFRASE :=
> > > > INSTR( L_VFRASE,' ');
> > > > > To: oracle_br@yahoogrupos.com.br
> > > > > From: gabriel_tomazc@...
> > > > > Date: Tue, 12 Feb 2013 00:20:08 +0000
> > > >
> > > > > Subject: RE: [oracle_br] Re: Duvida
> > > > >
> > > > >
> > > > > Eu fiz algumas alterações no codigo mas não deu certo.Se alguém pode
> > me
> > > > ajudar
> > > > > O erro que aparece e o mesmo.
> > > > >
> > > > > To: oracle_br@yahoogrupos.com.br
> > > > > From: ro.warstat@...
> > > > > Date: Mon, 11 Feb 2013 21:02:32 -0200
> > > > > Subject: Re: [oracle_br] Re: Duvida
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Como eu havia falado em alguma mensagem lá atrás, o IF serve para
> > testar
> > > > >
> > > > > valores e decidir qual caminho a ser seguido. Sugiro que procure pela
> > > > >
> > > > > documentação sobre IF e ajuste esse que está erro.
> > > > >
> > > > > Nota que o segundo IF que tu fez está certo.
> > > > >
> > > > >
> > > > >
> > > > > []´s
> > > > >
> > > > > Roberto
> > > > >
> > > > >
> > > > >
> > > > > Em 11/02/2013 20:56, gabriel Tomaz escreveu:
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > > O erro estar dando no Primeiro " IF" onde estar em negrito.
> > > > >
> > > > > > O erro e o seguinte:
> > > > >
> > > > > > ORA-06550:linha 15, coluna 61:PLS-00103: Encontrato o símbolo";"
> > > > >
> > > > > > quando um dos seguites símbolos era esperado:
> > > > >
> > > > > > .(*%_=-+</> at is mod remainder not rem then< > or!+=or~=>=<=<>and
> > or
> > > > >
> > > > > > like like2_like4_likec_between||multiset member
> > > > >
> > > > > > SUBMULTISET_ORA-06550:linha34,coluna5:PLS-00103:encontrado o
> > > > >
> > > > > > símbolo"IF" quando um dos seguintes símbolos esra esperado:loop
> > > > >
> > > > > > DECLAREL_VFRASE VARCHAR2(240) := '&Digite uma Frase.';L_VFRASE_TEST
> > > > >
> > > > > > VARCHAR2(240);L_VFRASE_NOVO VARCHAR2(240);L_VQBR_LINHA
> > > > >
> > > > > > VARCAHAR2(240);L_VALOR_NOVO VARCAHAR2(240);L_TESTE_QBR
> > > > >
> > > > > > VARCAHAR2(240);L_FRA_CERT VARCAHAR2(240);L_FRASE
> > > > >
> > > > > > VARCAHAR2(240);L_VFRASE_TEST1 VARCHAR2(240);BEGINWHILE 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(NL_FRA_CERT,NL_valor_novo);L_FRASE :=
> > > > >
> > > > > > SUBSTR(L_FRA_CERT,L_VALOR_NOVO +LENGTH(L_FRA_CERT));IF L_VQBRLINHA
> > <10
> > > > >
> > > > > > thenL_L_TESTE_QBR :=
> > CONCAT(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.warstat@...
> > > > >
> > > > > > Date: Mon, 11 Feb 2013 20:37:04 -0200
> > > > >
> > > > > > Subject: Re: [oracle_br] Re: Duvida
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > > Gabriel,
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > > O grupo não aceita anexos.
> > > > >
> > > > > >
> > > > >
> > > > > > Cola o teu código aqui - FORMATADO - e coloca também a mensagem de
> > > > erro.
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > > []´s
> > > > >
> > > > > >
> > > > >
> > > > > > Roberto
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > [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]
> >
> >
> >
> 
> 
> [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
>


Responder a