Problème requête sql base oracle

Problème requête sql base oracle - SQL/NoSQL - Programmation

Marsh Posté le 29-06-2004 à 16:55:52    

Voilà, je fais du jsp avec une interrogation sur une base Oracle, et je travaille actuellement sur une requête qui comptabilise ce que rapporte un produit à l'entreprise selon le nombre de commande effectués.  
 
J'ai utilisé le code du précédent stagiaire, qui n'utilisais qu'un seul critère, en l'améliorant en une recherche multi-critères.  
 
j'ai également une date de début et une date de fin pour avoir une période donnée.  
 
Seulement dés que je demande une période assez grande, mon pc mouline grave (il m'est environ 30 sec en moyenne) et me sort une erreur du style: "Invalid Column name"...par contre, pour la même requête, si je rentre une période plus courte, il me sort correctement le résultat...
 
J'voulais savoir si quelqu'un connaissait la possible erreur et les moyens de la résoudre...
 
 
Merci

Reply

Marsh Posté le 29-06-2004 à 16:55:52   

Reply

Marsh Posté le 29-06-2004 à 20:41:11    

Poste le code, et surtout la requête...
 
Sinon, si ça rame, c'est que tes index ne sont pas au point. Commence par créer un index sur les champs qui sont utilisé dans la clause WHERE de ta requête.
 
N'hésite pas à faire plusieurs index si les critères sont facultatifs.

Reply

Marsh Posté le 30-06-2004 à 09:33:55    

dafrip a écrit :

Voilà, je fais du jsp avec une interrogation sur une base Oracle, et je travaille actuellement sur une requête qui comptabilise ce que rapporte un produit à l'entreprise selon le nombre de commande effectués.  
 
J'ai utilisé le code du précédent stagiaire, qui n'utilisais qu'un seul critère, en l'améliorant en une recherche multi-critères.  
 
j'ai également une date de début et une date de fin pour avoir une période donnée.  
 
Seulement dés que je demande une période assez grande, mon pc mouline grave (il m'est environ 30 sec en moyenne) et me sort une erreur du style: "Invalid Column name"...par contre, pour la même requête, si je rentre une période plus courte, il me sort correctement le résultat...
 
J'voulais savoir si quelqu'un connaissait la possible erreur et les moyens de la résoudre...
 
 
Merci


 
Ta période est valide au moins ?
pas de 30/02/2004 niveau date par exemple  :sweat:

Reply

Marsh Posté le 30-06-2004 à 16:51:02    

vttman a écrit :

Ta période est valide au moins ?
pas de 30/02/2004 niveau date par exemple  :sweat:


 
Merci d'abord pour vos réponses, je vais essayer d'être clair pour vous expliquer mon problème:
 
Ma requête est la suivante:
"SELECT p.designation , SUM(p.euro*l.quantite*l.coef1+p.euro*l.quantite*l.coef2) AS somme FROM produit p, ligne_commande l, commande pr WHERE pr.id_prop=l.id_proposition AND pr.id_prop2=l.id_prop2 AND l.id_produit=p.id_produit AND pr.date_prop > (sysdate - fin) AND NOT pr.date_prop > (sysdate - debut) GROUP BY p.designation ORDER BY somme desc"
 
Où debut et fin sont les variables pour une période voulue. (sysdate - 15) = 15 jours avant la date d'aujourd'hui
 
En gros, Elle sort la désignation des produits enregistrés dans une commande, ainsi que la somme totale que représente le produit selon les commandes dont il fait parti.  
 
le problème se situe lorsque je donne à la variable fin la valeur 409,  la page me retourne le message d'erreur:
 " java.sql.SQLException: Invalid column name "
 
Et quand je rentre une valeur inférieure (par exemple 408), la requête passe. Etrange non?????  
 
J'ai lançé la requête via sqlplus sur l'ordinateur qui contient la base de données avec la valeur 409, et là, pas de problème, le problème se situe donc dans ma page JSP, mais comment l'identifier???? :cry:  :cry:  :cry:  
 
Donc je voulais savoir si vous aviez déja connu ça ou si vous pensez de quel côté l'erreur se situe.....
 
Merci  :hello:  :hello:  

Reply

Marsh Posté le 01-07-2004 à 15:49:56    

Problème résolu....merci à Arjuna et VTTman d'y avoir participé....la soluce est en fait un problème qui ne dépendait pas de la période...j'ai eu un moment peur de tomber sur Ze problème métaphysique de l'ordinateur...alors que tout est dans la logique :D :D

Reply

Sujets relatifs:

Leave a Replay

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