PDA

Visualizza versione completa : [Java/Sql] Problema apice


GiulioCesare
31-03-2006, 13.21.56
Salve ragazzi ho un problema con l'esecuzione di una query insert, tramite una procedura java. Il problema è questo, devo inserire un record in una tabella, ma un campo di questa tabella, ha un apice al suo interno, e questo apice sql lo interpreta come carattere di fine stringa, quindi la query, mi va in errore. Premetto che per vari motivi non posso usare il prepate statement con java, ed ho provato a mettere il carattere \\, prima di ogni apice, ma il problema rimane, come posso risolverlo?
Grazie a chi vorrà aiutarmi :)

Gergio
31-03-2006, 13.53.01
non conosco il caso specifico di java, ma di solito, per risolvere qsto genere di problema, ci sono varie strade:

1. usi il backslash \ (singolo) prima dell'apice cosi': \"

2. usi una combinzione di apici doppi e singoli

3. ti crei una stringa apice e la usi al posto dell'apice stesso
es: apice = "'" (singolo apice racchiuso tra coppia di doppi apici) e poi qndo vai a creare la stringa che andra' nel campo della tabella fai una cosa del genere: "prima parte" + apice + "seconda parte"
nota: sto usando una sintassi generica, giusto per chiarire il concetto

hth

quipo.it
31-03-2006, 17.13.03
non so che dbms stai usando, comunque lo standard SQL prevede un apice singolo per quotare un apice singolo, cioè, dove c'è un apice ce ne metti due (uno di escape + quello reale).
Il backslash è usato solo da alcuni dbms, non funziona con tutti...

GiulioCesare
31-03-2006, 17.50.15
Premetto che sto usando postgresql, la soluzione di mettere un apice in più è valida, se eseguo la query direttamente sul db, ma non se eseguo la query da java :(

quipo.it
31-03-2006, 17.58.48
in java, prova a fare l'escape degli apici:

\'\'