RE: [oracle_br] Uma ajudinha!!!
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!!!
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!!!
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!!!
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