Seguinte pessoal, estou fazendo um sql para buscar uma pessoa através do seu cnpj. Mas o parametro que eu estou passando não é com os pontos, traços e barras que tem no cnpj, e no meu BD(PostgreSQL) está salvo com esses caracters (. - /).
EX:
Parametro: 00000000000000
No banco: 000.000.000/0000-0
Alguem sabe uma função, ou como fazer a retirada desses caracteres no momento da consulta?
Obrigado.
[quote=gilvanandre]Seguinte pessoal, estou fazendo um sql para buscar uma pessoa através do seu cnpj. Mas o parametro que eu estou passando não é com os pontos, traços e barras que tem no cnpj, e no meu BD(PostgreSQL) está salvo com esses caracters (. - /).
EX:
Parametro: 00000000000000
No banco: 000.000.000/0000-0
Alguem sabe uma função, ou como fazer a retirada desses caracteres no momento da consulta?
Obrigado.[/quote]
Fiz aqui meio na pressa, nao sei se funciona, mas testa aí! Se não funcionar, a solução não deve fugir muito disso:
CREATE OR REPLACE FUNCTION retira_especiais(character varying)
RETURNS character varying AS
$$
SELECT translate($1, './-', '')
$$
LANGUAGE sql;
Aí na hora de fazer a consulta basta chamar o retira_especiais(parametro_desejado), no caso, o CNPJ!
Acredito que seja mais simples vc formatar no java mesmo antes de fazer o select.
Se a tabela tiver muitos registros, a consulta pode ficar demorada formatando no sql.
[quote=jeanmalvessi][quote=gilvanandre]Seguinte pessoal, estou fazendo um sql para buscar uma pessoa através do seu cnpj. Mas o parametro que eu estou passando não é com os pontos, traços e barras que tem no cnpj, e no meu BD(PostgreSQL) está salvo com esses caracters (. - /).
EX:
Parametro: 00000000000000
No banco: 000.000.000/0000-0
Alguem sabe uma função, ou como fazer a retirada desses caracteres no momento da consulta?
Obrigado.[/quote]
Fiz aqui meio na pressa, nao sei se funciona, mas testa aí! Se não funcionar, a solução não deve fugir muito disso:
CREATE OR REPLACE FUNCTION retira_especiais(character varying)
RETURNS character varying AS
$$
SELECT translate($1, './-', '')
$$
LANGUAGE sql;
Aí na hora de fazer a consulta basta chamar o retira_especiais(parametro_desejado), no caso, o CNPJ!
[/quote]
Valeu rapaz… DETALHE: O CARA TRABALHA NA MESA DO MEU LADO. HEUHEUEHUEHUEHUEHUEHUEHEUHEU
1 curtida
public class ValidarSemPontos {
private String removePontos(final String documento) {
String documentoSemPonto = documento.trim().replace("-","").replace(".", "").replace("/", "");
return documentoSemPonto;
}
public static void main(String[] args) {
ValidarSemPontos vsp = new ValidarSemPontos();
// Exemplo com cpf
String cpf ="717.411.600-06";
System.out.println(vsp.removePontos(cpf));
// Exemplo com cnpj
String cnpj ="363.865.570/0015-0";
System.out.println(vsp.removePontos(cnpj));
}
}
[quote=brunoprogramadorjava][code]
public class ValidarSemPontos {
private String removePontos(final String documento) {
String documentoSemPonto = documento.trim().replace("-","").replace(".", "").replace("/", "");
return documentoSemPonto;
}
public static void main(String[] args) {
ValidarSemPontos vsp = new ValidarSemPontos();
// Exemplo com cpf
String cpf ="717.411.600-06";
System.out.println(vsp.removePontos(cpf));
// Exemplo com cnpj
String cnpj ="363.865.570/0015-0";
System.out.println(vsp.removePontos(cnpj));
}
}
[/code][/quote]
Obrigado, mas não é isso que eu preciso. Já resolvi com o que o rapaz acima me mandou.
O que eu precisava era uma função direto no PostgreSQL que retirasse esses acentos, e não uma classe com uma função, isso eu já tenho.
Mesmo assim obrigado.