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" :
Cependant, j'ai une erreur du type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 CREATE OR REPLACE PROCEDURE mapping_customer AS CURSOR C_Staging IS SELECT * FROM Staging WHERE (HostCustomerID_DO,HostCustomerID_LI) IN (SELECT HostCustomerID_DO,HostCustomerID_LI FROM CustomerBP WHERE LocBinID IS NOT NULL OR HostLocID IS NOT NULL); BEGIN FOR enreg IN C_Staging LOOP UPDATE Staging SET CalcLocId=(SELECT COALESCE(LocBinID,HostLocID) FROM CustomerBP WHERE CustomerBP.HostCustomerID_DO=enreg.HostCustomerID_DO AND CustomerBP.HostCustomerID_LI=enreg.HostCustomerID_LI) WHERE CustomerBP.HostCustomerID_DO=enreg.HostCustomerID_DO AND CustomerBP.HostCustomerID_LI=enreg.HostCustomerID_LI; END; END;
Je ne vois pas dans les différents example un END LOOP pour cette méthode (sans Fetch)...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Erreurs pour PROCEDURE MAPPING_CUSTOMER : LINE/COL ERROR -------- ----------------------------------------------------------------- 19/5 PLS-00103: Symbole ";" rencontré à la place d'un des symboles suivants : loop Symbole "loop" a été substitué à ";" pour continuer.
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....?
Partager