Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2880 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  jdbc - Tables Oracle avec $

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

jdbc - Tables Oracle avec $

n°1838981
didier1809
${citation_perso}
Posté le 16-01-2009 à 15:07:02  profilanswer
 

:hello:  
 
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,
 :jap:


---------------
.
mood
Publicité
Posté le 16-01-2009 à 15:07:02  profilanswer
 

n°1839041
Bidem
Posté le 16-01-2009 à 16:11:08  profilanswer
 

il faut dé-spécialiser les caractères '&' (et les autres caractères spéciaux) en insérant un '\' avant

n°1839060
didier1809
${citation_perso}
Posté le 16-01-2009 à 16:24:26  profilanswer
 

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  [:didier1809]


---------------
.
n°1839098
Mara's dad
Yes I can !
Posté le 16-01-2009 à 17:05:33  profilanswer
 

'\\' ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1839099
didier1809
${citation_perso}
Posté le 16-01-2009 à 17:06:35  profilanswer
 


 
Non plus, j'ai essayé aussi  ;)


---------------
.
n°1839100
Mara's dad
Yes I can !
Posté le 16-01-2009 à 17:07:47  profilanswer
 

Y dit  quoi ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1839102
didier1809
${citation_perso}
Posté le 16-01-2009 à 17:09:31  profilanswer
 

la même chose, illegal character :(
 
Et je n'arrive pas a "googler" ce truc, il ne tient pas compte du '$' dans mes recherches.


---------------
.
n°1839281
Bidem
Posté le 17-01-2009 à 00:45:20  profilanswer
 

Regarde là
http://www.orafaq.com/wiki/SQL_FAQ [...] queries.3F
 
Sinon, montre nous comment tu construis ta requête.

n°1839298
didier1809
${citation_perso}
Posté le 17-01-2009 à 08:28:25  profilanswer
 

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 :(


---------------
.
n°1839305
Mara's dad
Yes I can !
Posté le 17-01-2009 à 10:03:30  profilanswer
 

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.
 


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
mood
Publicité
Posté le 17-01-2009 à 10:03:30  profilanswer
 

n°1839306
didier1809
${citation_perso}
Posté le 17-01-2009 à 10:04:45  profilanswer
 

Mara's dad a écrit :

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.
 


 
Oui, ca marche bien en sql directement, mais ca m'arrange pas des masses :D


---------------
.
n°1839307
Mara's dad
Yes I can !
Posté le 17-01-2009 à 10:05:46  profilanswer
 

Ce que je veux dire, c'est cherche du coté de java, pas oracle.
Peut-être jdbc ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1839308
Mara's dad
Yes I can !
Posté le 17-01-2009 à 10:10:02  profilanswer
 

Autre idée, affiche ta requête avant de l'envoyer à oracle.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1839311
Mara's dad
Yes I can !
Posté le 17-01-2009 à 10:17:24  profilanswer
 

Remarque : lower('system') === 'system'


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1839321
didier1809
${citation_perso}
Posté le 17-01-2009 à 10:46:22  profilanswer
 

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')
java.sql.SQLException: ORA-00911: caractΦre non valide
 
        at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:74)


Message édité par didier1809 le 17-01-2009 à 10:50:10

---------------
.
n°1839328
Mara's dad
Yes I can !
Posté le 17-01-2009 à 11:03:21  profilanswer
 

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.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°1839342
didier1809
${citation_perso}
Posté le 17-01-2009 à 11:34:26  profilanswer
 

Mara's dad a écrit :

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.


 
C'était le point 2, c'était trop évident je ne le voyait pas  :D  
 
Bref, merci  :hello:


---------------
.
n°1839349
Mara's dad
Yes I can !
Posté le 17-01-2009 à 11:43:41  profilanswer
 

De rien


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  jdbc - Tables Oracle avec $

 

Sujets relatifs
Tomcat Cannot load JDBC driver class 'org.postgresql.Driver'[SQLSERVER To ORACLE] Le type float
[Oracle] Option de tri pour ORDER BY[oracle] Récupération d'un nombre dans un champ texte
[ORACLE] utl_file en remote connectionPHP4+Oracle 8=> CSV
script Oracle vers PostgreSQLdrivers Oracle
Pb connexion jdbc avec un user ayant un profil qui limite le nombre deMigration Oracle 8 vers 10 et application VB5
Plus de sujets relatifs à : jdbc - Tables Oracle avec $


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR