Como fazer select usando like com aspas simples [RESOLVIDO]

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

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.

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:

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 + "%'"; 

[quote=thiago.correa]Sou da teoria do colega, utilize a classe PreparedStatement ao invés do Statement, mas respondendo a pergunta tente o seguinte

[code]
String nome = “Mc’Donalds”;

select * from Teste like ‘%" + nome + "%’";
[/code][/quote]

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…

AbelBueno,

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

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.