|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : février 2007 Messages : 26 ![]() |
Bonjour à tous,
Je débute en PL/SQl et j'ai un problème dans une procédure. Dans cette procédure, je dois tester si une valeur est comprise entre 2 entiers. J'ai essayer de faire ce test avec plusieurs syntaxes différentes mais j'ai toujours la même erreur. Quand j'essaye de compiler ma procédure, j'ai ce message qui s'affiche : "NOT FOUND The requested URL/apex/www_flow.show was not found on this server" Voici comment j'ai écris mes if : Code :
Pour faire mes procédure, j'utilise Oracle Database 10g Express Edition. J'aimerais savoir si mon erreur est une erreur de syntaxe ou alors si sa vient de Oracle parce que là je sèche. D'avance merci |
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
C'est une manie en ce moment ?
Merci de faire au moins "l'effort" de consulter un des tutoriels du site pour savoir utiliser la syntaxe "if ... then.. end if;" tout de même. |
|
|
00
|
|
|
#3 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Il peut même chercher CASE
|
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : février 2007 Messages : 26 ![]() |
Je connais la syntaxe du IF. En fait, mon problème ne vient pas du test dans le IF mais c'est que dans ma procédure, j'ai un plusieurs IF avec d'autres IF à l'interieur. Je ne comprend pas mon erreur j'ai trouvé des exemples de IF imbriqués sur Internet et ma syntaxe semble correcte. Voici mon code :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
L'imbrication des if et autres begin sont possibles, c'est sûr.
Mais je ne vois pas le problème dans ta procédure ?! C'est quoi ton message d'erreur ? |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 26 ![]() |
Dans oracle, quand je lance la compilation de la procédure avec le bouton Run, une fenetre s'ouvre avec un bouton "submit". Quand je clique sur le bouton submit, j'ai le message suivant qui apparaît :
"Not found The requested URL /apex/wwv_flow.show was not found on this server" |
|
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
Citation:
Si c'est ça, as-tu déjà compilé (sans erreur) ta procédure ? Est-ce que tes requêtes ramène une seule valeur, au plus ? Est-ce que tu es bien connecté avec ta base ? Est-ce que tu rempli correctement les valeurs lorsque la fenêtre "RUN PL/SQL" s'ouvre ? |
|
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : février 2007 Messages : 26 ![]() |
J'ai essayé de supprimer manuelement la procédure que j'avais créé avant et maintenant ça marche, il n'y a plus d'erreur à la compilation mais ma procédure ne marche pas comme prévu. Par exemple, si typeind=1, ma procédure ne fait pas le "else". Quand ma table tempInd est vide, l'ajout se fait corréctement puisque tempRea est nul mais si j'ai temp mais si tempRea n'est pas nul, l'ajout ne se fait pas dans ma table tempind. Pourtant, l'ajout est pris en compte puisque l'insertion dans la table TempIndFilm se fait correctement. Est-ce que s'il n'y a pas de valeur dans une colonne de la table, le test de la valeur NULL est bon?
Au fait, le code que j'ai mis avant n'est pas tout a fait correct Code :
|
||
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 26 ![]() |
C'est bon j'ai reussi à faire marcher ma procédure comme je le voulais. Merci beaucoup pour l'aide que tu m'as apporté.
|
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
Où était le blocage ?
|
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() Inscription : février 2007 Messages : 26 ![]() |
En fait j'avais créé une procédure plus ancienne qui avait le même nom. Je l'ai supprimer "à la mains" et sa a marché. Ce que je ne comprend pas, c'est que dans la déclaration de ma procédure, j'ai bien mis "create or replace".
Sinon, j'ai un autre problème avec une autre procédure. Celle-ci compile sans erreur mais c'est dans l'éxecution que sa plante. Dans cette procédure, j'ai comme dans la précédente deux SELECT qui peuvent me renvoyer des valeurs nulles. Quand j'apelle ma fonction en JDBC et que les champs sont nuls, une éxeption est levée: elle m'indique: "capture d'une exception java.sql.SQLException: ORA-01403: aucune donnée trouvée" avec la numéro de la ligne de ma procédure qui correspond à mon SELECT. Ce que je ne comprend pas, c'est que pour l'autre fonction sa marche sans problème même si la valeur demandée dans le SELECT n'est pas dans la table. Voici le code de ma nouvelle procédure: Code :
|
||
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 26 ![]() |
Ah j'ai réussi à résoudre mon deuxième problème. J'ai déplacé les SELECT et les ai mis apres presant=1. Quand presant est égal à un, c'est qu'il y a des données dans la table. Les select retournent donc bien une valeur.
|
|
|
00
|
|
|
#13 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
sauf qu'il n'y a pas de gestion d'exception donc ça sert à rien
Si tu n'as pas de donner la procédure s'arrête avec un NO_DATA_FOUND |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com