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 : 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
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;
Partager