Como fazer select usando like com aspas simples [RESOLVIDO]

6 respostas
H

Boa tarde Pessoal,

Preciso fazer um select no banco de dados usando like, via ODBC, mas a String nome, pode vir com aspas simples exemplo:

String nome = “Mc’Donalds”;

select * from Teste like ‘%" + nome + "%’;

Dá erro, pois, o like acaba sendo usado com aspas simples.

Alguém pode me ajudar, não tenho idéia de como fazer isso.

Obs: Não posso remover a aspas simples no nome.

Obrigado

6 Respostas

F

EVITE USAR A PORCARIA DO STATEMENT

use PreparedStatement e use os metodos setString (no seu caso), para definir os parametros de uma pesquisada no google sobre o PreapredStatement.

L

por exemplo, a sua query

select * from Teste like '%" + nome + "%';

vai ficar

String SELECT = "select * from Teste like ? "

onde o ? é o seu parametro.

Para usar, basta setar o ? com a variavel nome:

stmt = SuaConexao.prepareStatement(SELECT); stmt.setString(1, nome); ResultSet rs = stmt.executeQuery();

:wink:

T

Sou da teoria do colega, utilize a classe PreparedStatement ao invés do Statement, mas respondendo a pergunta tente o seguinte

String nome = "Mc\'Donalds";

select * from Teste like '%" + nome + "%'";
A
thiago.correa:
Sou da teoria do colega, utilize a classe PreparedStatement ao invés do Statement, mas respondendo a pergunta tente o seguinte
String nome = "Mc\'Donalds";

select * from Teste like '%" + nome + "%'";

Thiago,

Não sei em quais bancos utilizar barras funciona, mas acredito que o padrão que seja dobrar as apas simples:

String nome = "Mc''Donalds";

"select * from Teste like '%" + nome + "%'";

De qualquer forma, melhor é sempre utilizar o prepared...

T

AbelBueno,

como disse, eu concordo com o uso do PreparedStatement, quanto ao uso de , foi um palpite :wink:

H

Então pessoal,

Consegui resolver, para funcionar no banco de dados Oracle, deve fazer o seguinte:

String nome = "Mc'Donalds";

nome = nome.replace("'","Chr(34)");

String sql = "select * from Empresa like '%"+ nome + "%';

Dessa forma ao passar o select via ODBC, o banco de dados vai entender que o caracter quote , seja aspas simples.

Exemplo de caracteres com aspas simples e aspas dupla:

Chr(34) = ’
Chr(39) = "

Valeu Pessoal,

Abs.

Criado 29 de setembro de 2010
Ultima resposta 29 de set. de 2010
Respostas 6
Participantes 5