|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : avril 2004 Messages : 573 ![]() |
Bonjour, suite à plusieur "cours" dont (http://www.trivadis.com/Images/nf9is...cm18-7342.pdf), j'essai de réaliser une requete, dans laquelle je dois comparer les champs HostCustomerID_DO,HostCustomerID_LI avec le tuple du curseur courant...
Voici la requete, pour y "voir un peu plus clair" : Code :
Code :
Ya t'il une autre méthode lorsque l'on utilise les curseurs pour comparer les champs du tuple courant avec ceux d'une autre table....? |
||||
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() |
Tout d'abord, il faudrai que tu precises ton SGBD. Bon, je suppose que c'est ORACLE...
Alors, a premiere vu, je crois qu'il faut que tu déclare déjà la variable "enreg" de type %TYPE. Ensuite, on termine une boucle par END LOOP; et non END; |
|
|
00
|
|
|
#3 | ||||
|
Membre régulier
![]() Inscription : avril 2004 Messages : 573 ![]() |
Oui désolée, c'est bien Oracle...
J'ai fais plusieurs tests donc j'ai effacé par mégarde la definition d'enreg... Par contre, j'ai toujours un problème sur un champs, alors qu'il est utilisé plusieurs fois, et que j'ai fait des copier-coller... Code :
Code :
|
||||
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() |
En fait, je crois que ta table CUSTOMERBP est sélectionné par un from dans la sous requete, donc elle est reconnu. Or dans le UPDATE, elle n'est pas séléctionné...donc CustomerBP.HostCustomerID_LI peut ne pas etre reconnu....
En fait, je sais pas si tu peux faire un UPDATE de ce type
|
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : avril 2004 Messages : 573 ![]() |
Est ce que je suis obligée de stocker mes valeurs temporairement dans une autre variable ou il existe un autre moyen pour ce genre de requete...?
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() |
C'est la limitation du sql ça
Je ferai un deuxieme curseur, à ta place, je pense. ou un stockage dans un VARRAY. |
|
|
00
|
|
|
#7 |
|
Membre régulier
![]() Inscription : avril 2004 Messages : 573 ![]() |
Si je fais un autre curseur, il faudra à chaque fois que je fasse ma requete pour stocker les elements qui m'interresse... Je peux refaire directement la requete à chaque fois?non? Le curseur est sencé accelerer les choses?
Et sinon, c'est quoi le principe du VARRAY?? En meme temps je regarde sur le net... |
|
|
00
|
|
|
#8 | |
|
Membre du Club
![]() |
Citation:
Bah, si tu fais deux boucles imbriqués. La premiere la Boucle du curseur (C1) qui te parse ta table CustomerBP et à l'interieur la Boucle du Curseur C2 avec ton update et dans le Where les champs du Curseur C1 Qu'en penses tu ? Faut que tu selectionnes obligatoirement de cette façon. Par contre pour le VARRAY, ca va etre compliqué si c'est pas un type... |
|
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : avril 2004 Messages : 573 ![]() |
Okay, je vais tenté cela, mais c'est que ça m'avait paru plus long alors qu'en fait c'est pareil... si ce n'est que les curseurs accélere le temps de traitement?
Merci beaucoup pour tes conseils, je vais les mettre en application et je te tiens au courant |
|
|
00
|
|
|
#10 | |
|
Membre du Club
![]() |
Citation:
bah ca accelere certes mais en meme temps, on peut pas s'en passer Pas de prob, tiens moi au courant. |
|
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() Inscription : avril 2004 Messages : 573 ![]() |
C'est bon, j'ai fini par trouver sans un deuxième curseur mais c'est tout comm merci...
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com