PL/SQL boucle for avec un curseur non réussi
Bonjour,
Je débute actuellement un projet en PL/SQL "je suis débutant",
J'ai réussi à écrire à ce jour cette requête mais je n'arrive pas à trouver de solution après avoir bien cherche quand même!:( .
Le but de cette requête et de récupérer dans la table" MVPV" dans l’attribut "mvpv_nego_nume" une parti de son texte qui permet de récupérer la clef primaire de la table 'ORDB' son attribut clef "ordb_iden" vous trouverez plus bas cette requête indiquais d'une flèche, après cela je doit faire une jointure entre cette attribut et la table "ORDB" sur sa clef primaire afin de mettre à jour la table "MVPV" sur l'attribut "MVPV_MONT_NET".
donc la question serait de savoir pourquoi je n'arrive pas a faire cette manipulation car mes requêtes me semble correct.
merci par avance de votre aide.
Ma requête :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| DECLARE
ordbiden number:= 0;
Var_2 number := 0;
tata NUMBER(12,3) := NULL;
CURSOR C_1
IS
SELECT EMET_IDEN, mvpv_nume, ord_iden
FROM MVPV
WHERE EMET_IDEN=30
AND
MVPV_ORIG='NEG'
AND
MVPV_NEGO_NUME LIKE '%ORDB%';
BEGIN
FOR v_PV IN C_1
LOOP
/*ordbiden:=V_PV.mvpv_nume;*/
UPDATE mvpv SET mvpv.mont_net = t1 WHERE mvpv.mvpv_nume = C_PV.mvpv_nume AND mvpv.emet_iden=C_PV.emet_iden;*/
SELECT SUBSTR(mvpv_nego_nume,5,length(mvpv_nego_nume)-2) INTO Var_2
FROM MVPV ;
UPDATE MVPV
SET MVPV_MONT_NET=(
SELECT ordb_mont_net_avt_revt_rets FROM ordb WHERE ordb_iden = Var_2 AND ordb.emet_iden=mvpv.emet_iden );
/*tata
WHERE mvpv_nume = V_PV.mvpv_nume;*/
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('Erreur!');
DBMS_OUTPUT.put_line (SUBSTR (SQLERRM, 1, 255));
ROLLBACK;
END; |