|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2005 Messages : 56 ![]() |
Salut a tous,
je debute en PL/SQL, et j'apprends sur le tas (grace a l'appli deja existante), mais j'ai un probleme incomprehensible pour une requete sous Forms je bosse avec oracle 9i et forms developper 6 Code :
Var_sys2 est un number qui contient 1392 Var_Mot_Num_Mot_Code_Proto est un varchar2(50) qui contient 'J28.4I ' (sans les quotes) cette requete qui est censée me retourner 1 dans Var_Cpt_IDMOT me retourne 0 alors que lorsque j'execute la requete en dure (donc le contenu des variables a la place des variables) ca me renvoit bien 1 Code :
j'ai essayé de mettre des quotes autour du J28.4I pour que ca donne bien 'J28.4I ' mais ca ne change rien.... Code :
Var_Mot_Num_Mot_Code_Proto := '''' || Var_Mot_Num_Mot_Code_Proto || ''''; Code :
un probleme d'un loop dans un loop (ca serait con, j'en ai encore 2 autres a faire apres PS: les cursors et variables sont apparemment definis correctement, donc je ne les ai pas remis. merci a vous si vous avez une petite idée, car la moi j'en ai plus PS2: j'hesitais a le mettre dans ce forum ou directement dans PL/SQL, donc excusez moi si je me suis trompé mike |
||||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 534 ![]() |
Votre requête en dur : 'J28.4I ' contient un espace en fin, alors que votre variable n'en contient pas. C'est peut-être l'origine du problème.
__________________
Rédacteur Oracle (Oracle ACE) Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche Je ne réponds pas aux questions techniques par MP Blogs: Forms-PL/SQL-J2EE - Forms Java Beans |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2005 Messages : 56 ![]() |
non, c'est normal, c'est en fait la concatenation entre num_mot et code_proto.
mais apparemment, code proto est vide, ce qui fait finir par un espace. mais meme si a la place d'un espace, je met un autre caractere, ca ne change rien |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : septembre 2007 Messages : 32 ![]() |
Je parie que tu n'es pas connecté sous le même identifiant que sous SQL Plus. Sinon, c'est sans doute une question de COMMIT manquant. Quand une requête ne renvoie pas la même chose entre Forms et SQL Plus, c'est toujours une raison de ce genre.
En passant, quand tu as des comportements un peu zarbis sous Forms 6, il y a un truc à connaître : toujours faire un Compile All (Ctrl+Shift+K) avant de faire ta génération (Ctrl-T). Ça devient un réflexe. |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : mars 2005 Messages : 56 ![]() |
merci pour vos reponses
quelques infos: -j'ai en fait repris ces requetes a partir d'un report, et elles fonctionnent (dans le report). -Je suis bien connecté sous les memes identifiants dans SQL plus et sous forms. -j'avais testé a la place de l'espace de mettre un autre caractere, ca ne fonctionnait pas. -les commit, j'en avais rajouté dans mon code, mais ca ne changeait rien. -la variable Var_Mot_Num_Mot_Code_Proto je la recupere d'un curseur, qui vient aussi de la concatenation de : num_mot||' '||code_proto (donc pour ca que l'espace ne me posait pas de problemes, vu que je recuperais et testait la meme concatenation) je viens de retester petit a petit la requete, et on dirait qu'il n'aime pas l'espace . apres avoir tout recompilé (j'ai du oublier de le faire quand j'ai testé avec un autre caractere a la place de l'espace) avec un _ a la place de l'espace, ca fonctionne. Je vais donc essayer de me debrouiller comme ca. pour ce qui est de la 2eme partie apres, elle refonctionne, vu que j'ai recupéré cette requete d'un reports, j'avais oublié de modifier :ID_SYS2 en Var_sys2 copier coller quand tu nous tiens mais si quelqu'un a une idée de pourquoi sous reports cette requete (avec l'espace) fonctionne , mais sous forms, ca ne marche pas, j'aimerai bien savoir merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com