expressão com caracter "

6 respostas
T

tenho uma tabela no banco de dados, que possui um campo chamado: “pkNomeTabela”. (com as “”)

o problema está sendo as “”.

não estou conseguindo realizar operações que envolvem esse campo.

preciso montar uma expressão com ", algo assim:

String instrucao = "select "pkNomeTabela" from tabela"

alguém sabe como fazer isso?

obrigado.

6 Respostas

maquiavelbona

Procure por Escape Characters. Em geral, são os ‘alguma coisa’;
Tente colocar " dentro de sua query.

Até!

analyser

Já ouviu falar de DAO, baixe esta apostila da CAELUM lá ensina DAO ai vc vai conseguir solucionar seu problema substituindo o campo por “?” e declarando abaixo, de uma olhada

Abraços

T

já tentei colocar " , para formar a instrução mas não deu certo.


também já pensei em usar prepareStatement, substituindo ? pelo valor da var., o problema está em atribuir o valor "(aspas) a uma var.

vou continuar pesquisando.

obrigado,

até mais.

P

Cara tente usar Batch, desse jeito que vc está fazendo além de atrapalhar a sua consulta no caso de alguns caracteres especiais a sua aplicação fica vulnerável a SQL Inject e Injecção Dinâmica de Código.

Boa sorte.

R

Muito estranho… com " era pra funcionar. Você tem certeza que tentou assim?

String instrucao = "select \"pkNomeTabela\" from tabela";

Se você fizer a seguinte consulta diretamente no banco funciona?

select "pkNomeTabela" from tabela

Se vc respondeu sim e sim, então n sei o que pode ser.

[]'s

T

Se o nome do campo contiver espaços ou outros caracteres esquisitos, e se seu banco permitir, você pode pôr aspas duplas nele. Senão isso não é necessário. (Nomes de campos nunca contém aspas).

No seu caso, na sua ferramenta (se for Oracle é o SQL*Plus, se for MS SQL Server é o SQL Query Analyzer etc) você deve estar fazendo algo como

select "nome do campo com caracteres esquisitos" from tabela

Quando você vai transformar isso em Java, você tem de usar:

String sql = "select \"nome do campo com caracteres esquisitos\" from tabela";
Criado 6 de julho de 2007
Ultima resposta 6 de jul. de 2007
Respostas 6
Participantes 6