Buscar valor no campo depois de um caracter

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
thatifc
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Qui, 03 Mai 2007 5:35 pm
Localização: São Paulo - SP

Boa tarde!
Preciso de pegar um dado, mas no campo tenho outras informações gravadas, e o que "separa" essas informações é a vírgula. Quero pegar apenas o que consta depois da vírgula.
Assim:
'exemplo, teste'

Quero apenas o valor 'teste'... O conteúdo até a virgula é variável, por isso não consigo usar o substr.

Por favor, como poderia fazer?
:roll:

Obrigada!
thatifc
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Qui, 03 Mai 2007 5:35 pm
Localização: São Paulo - SP

Ah! Mais uma coisa:
Não posso usar função, porque estou criando um alert (no ERP) e lá só aceita o select simples... Preciso fazer o "tratamento" no campo mesmo.
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Thati, tenta este código:

Selecionar tudo

DECLARE
  v_string VARCHAR2(50) := 'Paulo;Trevisolli'; 
BEGIN
  dbms_output.put_line(' Depois do ponto e virgula : ' || SUBSTR(v_string,INSTR(v_string,';')+1,11));
END;
qualquer coisa manda ai.
Hahu
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 147
Registrado em: Qui, 16 Mar 2006 11:26 am
Localização: São Paulo
O mundo gira muito!!

Fala thatifc,
Boa tarde,

Então, faça um selequete da coluna que você precisa!!

Crie um spool c:\teste.txt no sqlplus e depois abrar no excel, separando por virgulas no menu ferramentas , importar dados externos, daee você coloca o separador por "," :lol:

Qualquer coisas, poste aqui no forum!

Abs Hahu
thatifc
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Qui, 03 Mai 2007 5:35 pm
Localização: São Paulo - SP

Trevisolli e Hahu,

muito obrigada pelo retorno!!
Segue aqui a forma que encontrei de resolver essa pendenga:

Selecionar tudo

Select Substr('Exemplo,Teste', Instr('Exemplo,Teste', ',')+1)
  From Dual
Tks!!
Thati

:wink:
ironijunior
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Qua, 06 Jun 2012 4:48 pm

Estou com uma dúvida bastante parecida:

No seu caso você buscou o segundo item da "lista", mas se eu tivesse mais de dois itens e quisesse buscar somente o segundo? Porque da forma que fizestes ele irá retornar tudo após o segundo.

Selecionar tudo

Select Substr('Exemplo,Teste, Exemplo2', Instr('Exemplo,Teste,Exemplo2', ',')+1)
  From Dual
Isso irá retornar: "Teste, Exemplo2"

Como eu poderia fazer para buscar somente o Teste?
Avatar do usuário
adrianoturbo
Moderador
Moderador
Mensagens: 393
Registrado em: Qui, 20 Mar 2008 4:09 pm
Localização: Brasília
Adriano Alves
---Para cada problema dificil existe uma solução simples.----

ironijunior ,basta ajustar o incrementador de string ,segue o exemplo:

Selecionar tudo

SQL> SELECT SUBSTR('Exemplo,Teste,Exemplo2',+9,5) FROM DUAL;

SUBST
-----
Teste

Responder
  • Informação