jdbc - Tables Oracle avec $ - Java - Programmation
Marsh Posté le 16-01-2009 à 16:11:08
il faut dé-spécialiser les caractères '&' (et les autres caractères spéciaux) en insérant un '\' avant
Marsh Posté le 16-01-2009 à 16:24:26
Bidem a écrit : il faut dé-spécialiser les caractères '&' (et les autres caractères spéciaux) en insérant un '\' avant |
Mais du coup c'est le compilateur java qui n'est pas content
Marsh Posté le 16-01-2009 à 17:05:33
ReplyMarsh Posté le 16-01-2009 à 17:06:35
ReplyMarsh Posté le 16-01-2009 à 17:07:47
Y dit quoi ?
Marsh Posté le 16-01-2009 à 17:09:31
la même chose, illegal character
Et je n'arrive pas a "googler" ce truc, il ne tient pas compte du '$' dans mes recherches.
Marsh Posté le 17-01-2009 à 00:45:20
Regarde là
http://www.orafaq.com/wiki/SQL_FAQ [...] queries.3F
Sinon, montre nous comment tu construis ta requête.
Marsh Posté le 17-01-2009 à 08:28:25
query = "select PARENTITEMID from user.DB$"+DBID+"$USERBASE_ATTR where lower(plaintextfragment) = lower('system');";
si je met des \$, j'ai une erreur de compil java, et \\$ ne marche pas non plus
Marsh Posté le 17-01-2009 à 10:03:30
En fait le $ ne pose pas de problème en Oracle.
S'il y en a un, c'est que Java fait quelque-chose de spécial avec le $.
Exemple sous SQLPLUS :
SELECT * FROM V$DATABASE;
ne pose pas de problème du tout.
Marsh Posté le 17-01-2009 à 10:04:45
Mara's dad a écrit : En fait le $ ne pose pas de problème en Oracle. |
Oui, ca marche bien en sql directement, mais ca m'arrange pas des masses
Marsh Posté le 17-01-2009 à 10:05:46
Ce que je veux dire, c'est cherche du coté de java, pas oracle.
Peut-être jdbc ?
Marsh Posté le 17-01-2009 à 10:10:02
Autre idée, affiche ta requête avant de l'envoyer à oracle.
Marsh Posté le 17-01-2009 à 10:17:24
Remarque : lower('system') === 'system'
Marsh Posté le 17-01-2009 à 10:46:22
Mara's dad a écrit : Remarque : lower('system') === 'system' |
?
Sinon, j'affiche bien ma requète avant, elle est correcte, mais j'ai toujours le soucis des char.
Si je copy/paste dans sqlplus, ca roule
Query: select PARENTITEMID from user.DB$17$USERBASE_ATTR where lower(plaintextfragment) = lower('system') |
Marsh Posté le 17-01-2009 à 11:03:21
1- Lower ne sert à rien sur une chaine constante déjà en minuscule.
2- Essayes sans le ';' à la fin. Le ';' est utile pour SQLPLUS ou en PL/SQL pour délimiter les commandes. Mais dans ton contexte, il est inutile.
Marsh Posté le 17-01-2009 à 11:34:26
Mara's dad a écrit : 1- Lower ne sert à rien sur une chaine constante déjà en minuscule. |
C'était le point 2, c'était trop évident je ne le voyait pas
Bref, merci
Marsh Posté le 17-01-2009 à 11:43:41
De rien
Marsh Posté le 16-01-2009 à 15:07:02
Je suis en train d'essayer de faire une requête en java (jdbc) sur une table qui contient des $ dans le nom, et j'obtien une erreur sql de invalid character.
Est-ce qu'il y a un moyen de ne pas avoir ces erreurs ?
Merci,
---------------
.