RE: [oracle_br] Uma ajudinha!!!

2010-08-18 Por tôpico Carlos Pinto
Valeu Eduardo…é isto mesmo

 

Com os melhores cumprimentos, 

Carlos Pinto

 

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em nome 
de Eduardo Schurtz
Enviada: quarta-feira, 18 de Agosto de 2010 17:00
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Uma ajudinha!!!

 

  

select substr('teste#123', instr('teste#123', '#', -1) + 1) from dual

Att,

__
*Eduardo Schurtz*
Oracle E-Business Consultant
✉ eduardo.schu...@gmail.com mailto:eduardo.schurtz%40gmail.com 
[image: LinkedIn] http://br.linkedin.com/in/eduardoschurtz[image:
Twitter]http://twitter.com/eduardo_oracle

2010/8/18 Carlos Pinto carlos.pin...@yahoo.com.br 
mailto:carlos.pintoo%40yahoo.com.br 



 Ola a todos, alguém me pode ajudar

 Tenho em campo VARCHAR2 (40) e o que precisava era “sacar” os últimos
 caracteres até ao #.

 22/07/2010#04121170700153051#E24

 25/07/2010#04121170700153055#D24569

 28/07/2010#04121170700153049#E2449

 Precisava destes caracteres – Exemplo:

 E24

 D24569

 E2449

 Como posso fazer isto em SQL?

 Desculpem Oracle 10G

 Com os melhores cumprimentos,

 Carlos Pinto

 [As partes desta mensagem que não continham texto foram removidas]

 


[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] Uma ajudinha!!!

2010-08-18 Por tôpico Marcos Braga
Olá Carlos,

Observe o exemplo e veja se a solução ajuda.


SQL create table t1 (c1 varchar2(40));

Tabela criada.

SQL insert into t1 values ('22/07/2010#04121170700153051#E24');

1 linha criada.

SQL insert into t1 values ('25/07/2010#04121170700153055#D24569');

1 linha criada.

SQL insert into t1 values ('28/07/2010#04121170700153049#E2449');

1 linha criada.

SQL commit;

Commit concluido.

SQL select regexp_replace(c1, '^.*#(.*)$', '\1') c1 from t1;

C1

E24
D24569
E2449

3 linhas selecionadas.



[]s
Braga


2010/8/18 Carlos Pinto carlos.pin...@yahoo.com.br



 Ola a todos, alguém me pode ajudar

 Tenho em campo VARCHAR2 (40) e o que precisava era “sacar” os últimos
 caracteres até ao #.

 22/07/2010#04121170700153051#E24

 25/07/2010#04121170700153055#D24569

 28/07/2010#04121170700153049#E2449

 Precisava destes caracteres – Exemplo:

 E24

 D24569

 E2449

 Como posso fazer isto em SQL?

 Desculpem Oracle 10G

 Com os melhores cumprimentos,

 Carlos Pinto



[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




Re: [oracle_br] Uma ajudinha!!!

2010-08-18 Por tôpico Marcos Braga
Oi Carlos,

Esse regexp que passei para ti é mais ou menos assim:

1. Primeiro vamos pegar o comando completo:
SQL select regexp_replace(c1, '^.*#(.*)$', '\1') c1 from t1;

2. Entendendo a função:
regexp_replace(COLUNA, 'BUSCA', 'SUBSTITUIÇÃO')
regexp_replace(c1, '^.*#(.*)$', '\1')

3. Entendendo a busca:
*^.*#(.*)$*  = string completa
*^*= indica o início do registro
*.*= indica qualquer caracter (letra ou número ou caracter especial)
***= indica qualquer quantidade de registro anterior (no nosso caso: .
- qualquer coisa)
*# *   = literal, significa isso mesmo: um #
*(.*)* = observe essa junção - adicionei .* dentro de parênteses
   aqui acabo de criar o grupo 1 (depois utilizarei como \1)
*$*= indica o fim do registro

*Carlos, a mágica toda está aqui, é sempre bom entender um pouco de
expressão regular para não ficar muito perdido, mas observe o que fiz: o
registro inicia (^) com qualquer quantidade de caracter (.*) até uma
cerquilha (#  -  não especifiquei a posição dessa cerquilha no registro,
pode estar em qualquer lugar, no início, no meio ou no fim) e após a
cerquilha crio um grupo ( (.*) ) que finaliza o registro ($). E utilizo
somente esse grupo na substituição.*

4. Entendendo a substituição:
*\1*   =  utilizando o grupo criado anteriormente na busca


Bom..., no começo as coisas ficam meio obscuras, mas segue alguns exemplos e
documentação para lhe ajudar a esclarecer o regexp, e quanto mais utilizar,
mais verá utilidade para o regexp.

http://www.oracle.com/technology/obe/obe10gdb/develop/regexp/regexp.htm

http://profissionaloracle.com.br/blogs/braga/category/regexp/

E as dúvidas, posta na lista para auxiliá-lo.

[]s
Braga



2010/8/18 Carlos Pinto carlos.pin...@yahoo.com.br



 Funcionou muito bem.

 Marcos podes explicar-me a construcao regexp_replace?


 Com os melhores cumprimentos,
 Carlos Pinto

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br [mailto:
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] Em
 nome de Marcos Braga
 Enviada: quarta-feira, 18 de Agosto de 2010 17:37

 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: Re: [oracle_br] Uma ajudinha!!!

 Olá Carlos,

 Observe o exemplo e veja se a solução ajuda.

 --
 SQL create table t1 (c1 varchar2(40));

 Tabela criada.

 SQL insert into t1 values ('22/07/2010#04121170700153051#E24');

 1 linha criada.

 SQL insert into t1 values ('25/07/2010#04121170700153055#D24569');

 1 linha criada.

 SQL insert into t1 values ('28/07/2010#04121170700153049#E2449');

 1 linha criada.

 SQL commit;

 Commit concluido.

 SQL select regexp_replace(c1, '^.*#(.*)$', '\1') c1 from t1;

 C1
 --
 E24
 D24569
 E2449

 3 linhas selecionadas.
 --

 []s
 Braga

 2010/8/18 Carlos Pinto 
 carlos.pin...@yahoo.com.brcarlos.pintoo%40yahoo.com.br
 

 
 
  Ola a todos, alguém me pode ajudar
 
  Tenho em campo VARCHAR2 (40) e o que precisava era “sacar” os últimos
  caracteres até ao #.
 
  22/07/2010#04121170700153051#E24
 
  25/07/2010#04121170700153055#D24569
 
  28/07/2010#04121170700153049#E2449
 
  Precisava destes caracteres – Exemplo:
 
  E24
 
  D24569
 
  E2449
 
  Como posso fazer isto em SQL?
 
  Desculpem Oracle 10G
 
  Com os melhores cumprimentos,
 
  Carlos Pinto



[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




RE: [oracle_br] Uma ajudinha!!!

2010-08-18 Por tôpico Carlos Pinto
Muito Obrigado Marcus.és muito fixe



Com os melhores cumprimentos, 
Carlos Pinto

-Mensagem original-
De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de Marcos Braga
Enviada: quarta-feira, 18 de Agosto de 2010 21:09
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] Uma ajudinha!!!

Oi Carlos,

Esse regexp que passei para ti é mais ou menos assim:

1. Primeiro vamos pegar o comando completo:
SQL select regexp_replace(c1, '^.*#(.*)$', '\1') c1 from t1;

2. Entendendo a função:
regexp_replace(COLUNA, 'BUSCA', 'SUBSTITUIÇÃO')
regexp_replace(c1, '^.*#(.*)$', '\1')

3. Entendendo a busca:
*^.*#(.*)$*  = string completa
*^*= indica o início do registro
*.*= indica qualquer caracter (letra ou número ou caracter especial)
***= indica qualquer quantidade de registro anterior (no nosso caso: .
- qualquer coisa)
*# *   = literal, significa isso mesmo: um #
*(.*)* = observe essa junção - adicionei .* dentro de parênteses
   aqui acabo de criar o grupo 1 (depois utilizarei como \1)
*$*= indica o fim do registro

*Carlos, a mágica toda está aqui, é sempre bom entender um pouco de
expressão regular para não ficar muito perdido, mas observe o que fiz: o
registro inicia (^) com qualquer quantidade de caracter (.*) até uma
cerquilha (#  -  não especifiquei a posição dessa cerquilha no registro,
pode estar em qualquer lugar, no início, no meio ou no fim) e após a
cerquilha crio um grupo ( (.*) ) que finaliza o registro ($). E utilizo
somente esse grupo na substituição.*

4. Entendendo a substituição:
*\1*   =  utilizando o grupo criado anteriormente na busca


Bom..., no começo as coisas ficam meio obscuras, mas segue alguns exemplos e
documentação para lhe ajudar a esclarecer o regexp, e quanto mais utilizar,
mais verá utilidade para o regexp.

http://www.oracle.com/technology/obe/obe10gdb/develop/regexp/regexp.htm

http://profissionaloracle.com.br/blogs/braga/category/regexp/

E as dúvidas, posta na lista para auxiliá-lo.

[]s
Braga



2010/8/18 Carlos Pinto carlos.pin...@yahoo.com.br



 Funcionou muito bem.

 Marcos podes explicar-me a construcao regexp_replace?


 Com os melhores cumprimentos,
 Carlos Pinto

 -Mensagem original-
 De: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br [mailto:
 oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br] Em
 nome de Marcos Braga
 Enviada: quarta-feira, 18 de Agosto de 2010 17:37

 Para: oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br
 Assunto: Re: [oracle_br] Uma ajudinha!!!

 Olá Carlos,

 Observe o exemplo e veja se a solução ajuda.

 --
 SQL create table t1 (c1 varchar2(40));

 Tabela criada.

 SQL insert into t1 values ('22/07/2010#04121170700153051#E24');

 1 linha criada.

 SQL insert into t1 values ('25/07/2010#04121170700153055#D24569');

 1 linha criada.

 SQL insert into t1 values ('28/07/2010#04121170700153049#E2449');

 1 linha criada.

 SQL commit;

 Commit concluido.

 SQL select regexp_replace(c1, '^.*#(.*)$', '\1') c1 from t1;

 C1
 --
 E24
 D24569
 E2449

 3 linhas selecionadas.
 --

 []s
 Braga

 2010/8/18 Carlos Pinto
carlos.pin...@yahoo.com.brcarlos.pintoo%40yahoo.com.br
 

 
 
  Ola a todos, alguém me pode ajudar
 
  Tenho em campo VARCHAR2 (40) e o que precisava era “sacar” os últimos
  caracteres até ao #.
 
  22/07/2010#04121170700153051#E24
 
  25/07/2010#04121170700153055#D24569
 
  28/07/2010#04121170700153049#E2449
 
  Precisava destes caracteres – Exemplo:
 
  E24
 
  D24569
 
  E2449
 
  Como posso fazer isto em SQL?
 
  Desculpem Oracle 10G
 
  Com os melhores cumprimentos,
 
  Carlos Pinto



[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