Probleme Oracle

Probleme Oracle - SQL/NoSQL - Programmation

Marsh Posté le 21-04-2004 à 17:06:07    

Via un programme JAVA, je dois faire des insertions dans des tables et voici un exemple de requete
 

Code :
  1. insert into BASEQ.TEST_TRAITEMENT
  2. ( BASEQ.TEST_TRAITEMENT.TRT_CODE,
  3. BASEQ.TEST_TRAITEMENT.TRT_SRV_CPU,
  4. BASEQ.TEST_TRAITEMENT.TRT_DESI,
  5. BASEQ.TEST_TRAITEMENT.TRT_CMD,
  6. BASEQ.TEST_TRAITEMENT.TRT_ECHEC,
  7. BASEQ.TEST_TRAITEMENT.TRT_LOGON )
  8. values
  9. ('PICKREPT',
  10. 'TECH' ,
  11. 'extrait des infos du rapport de post-production (tbb)' ,
  12. '{ echo `date`;grep -i totals stdlist/`date '+%Y.%m.%d'`/reptr_post_sum ;} >> /opt/exploit/arch/maestro_report.lis', 'S' , 'maestro8' )


 
Mais avec cette requete j'ai comme erreur  
 
ORA-00911: invalid character,
 
Je ne sais pas de quel caractère vient ce problème et quoi faire pour quand même insérer cette données dans ma table

Reply

Marsh Posté le 21-04-2004 à 17:06:07   

Reply

Marsh Posté le 21-04-2004 à 17:11:36    

lapartdombre a écrit :

Via un programme JAVA, je dois faire des insertions dans des tables et voici un exemple de requete
 

Code :
  1. insert into BASEQ.TEST_TRAITEMENT
  2. ( BASEQ.TEST_TRAITEMENT.TRT_CODE,
  3. BASEQ.TEST_TRAITEMENT.TRT_SRV_CPU,
  4. BASEQ.TEST_TRAITEMENT.TRT_DESI,
  5. BASEQ.TEST_TRAITEMENT.TRT_CMD,
  6. BASEQ.TEST_TRAITEMENT.TRT_ECHEC,
  7. BASEQ.TEST_TRAITEMENT.TRT_LOGON )
  8. values
  9. ('PICKREPT',
  10. 'TECH' ,
  11. 'extrait des infos du rapport de post-production (tbb)' ,
  12. '{ echo `date`;grep -i totals stdlist/`date '+%Y.%m.%d'`/reptr_post_sum ; } >> /opt/exploit/arch/maestro_report.lis', 'S' , 'maestro8' )


 
Mais avec cette requete j'ai comme erreur  
 
ORA-00911: invalid character,
 
Je ne sais pas de quel caractère vient ce problème et quoi faire pour quand même insérer cette données dans ma table
 


 
bonjour,
 
ça sert à quoi les accollades ? c'est pour faire un appel système pendant la requête ?
pour quoi elles ne sont pas refermées après >> /opt/exploit/arch/maestro_report.lis alors ?
 
à moins que tu ne veuilles tout simplement stocker une chaîne dans ta BD ?
 
EDIT : zut!
le formatage ne fonctionne pas entre les balises... je voulais mettre en gras la 4ème colonne de la ligne que tu veux insérer, et je voulais souligné l'accollade fermante... peut-être doit elle aller à la fin (juste avant la 5ème colonne ?)


Message édité par dalcap le 21-04-2004 à 17:13:24
Reply

Marsh Posté le 21-04-2004 à 17:13:09    

Moi je dois juste me charger de stocker cette chaine dans la base de donnees

Reply

Marsh Posté le 21-04-2004 à 17:14:28    

lapartdombre a écrit :

Moi je dois juste me charger de stocker cette chaine dans la base de donnees


 
ok,  
 
tu pourrais essayer d'insérer autre chose dans la 4ème colonne, comme ça, tu sauras si cela vient de là...

Reply

Marsh Posté le 21-04-2004 à 17:15:54    

Il y a d'autres enregistrement qui ont été inséré mais seul celui la pose un probleme

Reply

Marsh Posté le 21-04-2004 à 17:16:34    

donc le probleme ne vient pas de la colonne mais de la chaine  
 
'{ echo `date`;grep -i totals stdlist/`date '+%Y.%m.%d'`/reptr_post_sum ;} >> /opt/exploit/arch/maestro_report.lis'

Reply

Marsh Posté le 21-04-2004 à 17:17:42    

lapartdombre a écrit :

donc le probleme ne vient pas de la colonne mais de la chaine  
 
'{ echo `date`;grep -i totals stdlist/`date '+%Y.%m.%d'`/reptr_post_sum ;} >> /opt/exploit/arch/maestro_report.lis'


 
et cette chaîne fonctionne dans ton shell ??
 
EDIT : excuse moi, je viens de tilter:
 
ta chaine doit etre séparée par des quotes simples,
mais tu fais une concaténation avec des + !
 
essaie avec des concat ou des || (double pipe)


Message édité par dalcap le 21-04-2004 à 17:20:08
Reply

Marsh Posté le 21-04-2004 à 17:19:02    

je ne sais pas si elle fonctionne et je n'ai pas à m'en soucier mais ca devrait être possible car elle est déjà insérer dans une autre table mais je ne sais pas comment la personne a fait et je n'ai pas moyen de le savoir

Reply

Marsh Posté le 21-04-2004 à 17:21:01    

lapartdombre a écrit :

je ne sais pas si elle fonctionne et je n'ai pas à m'en soucier mais ca devrait être possible car elle est déjà insérer dans une autre table mais je ne sais pas comment la personne a fait et je n'ai pas moyen de le savoir


 
et avec les || à la place des + (voir edit précédent)

Reply

Marsh Posté le 21-04-2004 à 17:24:06    

ca ne marche pas non plus en placant || à la place du +

Reply

Marsh Posté le 21-04-2004 à 17:24:06   

Reply

Marsh Posté le 21-04-2004 à 17:32:30    

lapartdombre a écrit :

ca ne marche pas non plus en placant || à la place du +


 
le problème c'est que tu ouvres des quotes et que quand tu les refermes, tu concatènes avec une chaine qui ne veut rien dire pour ton SGBD
 
'{ echo `date`;grep -i totals stdlist/`date '+%Y.%m.%d'`/reptr_post_sum ;} >> /opt/exploit/arch/maestro_report.lis'
 
est-ce que la partie en gras fait partie de la chaine à insérer ?
si oui, les quotes aussi ?
si oui, il faut protéger les quotes pour qu'ils ne soient pas interprétés, en les doublant  
'{ echo `date`;grep -i totals stdlist/`date ''+%Y.%m.%d''`/reptr_post_sum ;} >> /opt/exploit/arch/maestro_report.lis'
 
ça règle le problème ?
 
EDIT : attention 2 quotes suffisent avec Oracle


Message édité par dalcap le 21-04-2004 à 17:35:33
Reply

Marsh Posté le 22-04-2004 à 08:45:13    

la chaine en gras fait parti de ma chaine  à insérer je vais essayer en doublant les quotes mais il me semble que j'ai déjà essayer

Reply

Marsh Posté le 22-04-2004 à 08:55:13    

c'est bon ca venait bien de ca  
 
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed