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;