Bonjour,

J'ai ecrit le code suivant sous Oracle Sql Developer, mais je ne sais pas s'il est correct ou non (surtout par rapport au execute immediate) :

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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
 
CREATE OR REPLACE PROCEDURE chargement() IS
 
  TYPE type_tab_char IS TABLE OF VARCHAR2(60) INDEX BY BINARY_INTEGER ;
		tab_dblinks type_tab := type_tab('db_link_fes','db_link_agadir','db_link_marakech','db_link_meknes','db_link_casa') ;
		i       pls_integer ;
    requete      VARCHAR2(512) ;
 
BEGIN
 
	FOR i IN 0..4 LOOP				
 
		requete := 'INSERT INTO client(numclie, cin_clie, typeclie, formjuri, codepays, libepays, codecate, libecate,
		nom_clie, prenclie, nais, adreclie, nom_conj, prenconj, nombenfa, sexecle, sitfamcl, cin_conj)
 
		SELECT numclie, cin_clie, typeclie, formjuri, codepays, libepays, codecate, libecate, nom_clie, prenclie,
		nais, adreclie, nom_conj, prenconj, nombenfa, sexecle, sitfamcl, cin_conj
 
		FROM com_client@'||tab_dblinks(i);
 
    EXECUTE IMMEDIATE requete;
 
	END LOOP ;
	COMMIT;
	----------------------------------------------------------------------------------------------------
 
	FOR i IN 0..4 LOOP
 
		requete := 'INSERT INTO attribution_client(numedoss, codeoper, codtyppr, attr,
		aff, etatdoss, prixcess, atte)
 
		SELECT numedoss, codeoper, codtyppr, attr,
		aff, etatdoss, prixcess, atte
 
		FROM com_attribution_client@'||tab_dblinks(i);
		EXECUTE IMMEDIATE requete;
 
	END LOOP ;
	COMMIT;
	----------------------------------------------------------------------------------------------------
 
	FOR i IN 0..4 LOOP
 
		requete := 'INSERT INTO dossier_attribution(numedoss, codeoper, codtyppr, attr, 
		aff, etatdoss, prixcess, atte)
 
		SELECT numedoss, codeoper, codtyppr, attr, 
		aff, etatdoss, prixcess, atte
 
		FROM com_dossier_attribution@'||tab_dblinks(i);
    EXECUTE IMMEDIATE requete;
 
	END LOOP ;
	COMMIT;
	----------------------------------------------------------------------------------------------------
 
	FOR i IN 0..4 LOOP
 
		requete := 'INSERT INTO produit(numeprod, codtyppr, codeoper, titrfonc,
		surfprov, surfcada, prixprov, prixdefi)
 
		SELECT com_produit.numeprod@'||tab_dblinks(i)||', com_type_produit.codtyppr@'||tab_dblinks(i)||', com_operation.codeoper@'||tab_dblinks(i)||', com_produit.titrfonc@'||tab_dblinks(i)||', com_produit.surfprov@'||tab_dblinks(i)||', com_produit.surfcada@||'tab_dblinks(i)||', com_produit.prixprov@'||tab_dblinks(i)||', com_produit.prixdefi@'||tab_dblinks(i)||'
 
		FROM com_produit@'||tab_dblinks(i)||', com_type_produit@'||tab_dblinks(i)||', com_operation@'||tab_dblinks(i)||'
 
		WHERE com_produit.codtyppr@'||tab_dblinks(i)||' = com_type_produit.codtyppr@'||tab_dblinks(i)||' AND com_type_produit.codtyppr@'||tab_dblinks(i)||' = com_operation.codtyppr@'||tab_dblinks(i);
    EXECUTE IMMEDIATE requete;
 
	END LOOP ;
	COMMIT;
	----------------------------------------------------------------------------------------------------
 
	FOR i IN 0..4 LOOP
 
		requete := 'INSERT INTO com_operation(codeoper, libeoper, numproj, codeante, numoper, desto)
 
		SELECT codeoper, libeoper, numproj, codeante, numoper, desto
 
		FROM com_operation@'||tab_dblinks(i);
    EXECUTE IMMEDIATE requete;
 
	END LOOP ;
	COMMIT;
	----------------------------------------------------------------------------------------------------
 
	FOR i IN 0..4 LOOP
 
		requete := 'INSERT INTO agence_regionale(codeante, libeante, typeante, username, password, db_link)
 
		SELECT codeante, libeante, typeante, username, password, db_link
 
		FROM agence_regionale@'||tab_dblinks(i);
    EXECUTE IMMEDIATE requete;
 
	END LOOP ;
	COMMIT;
	----------------------------------------------------------------------------------------------------
 
	FOR i IN 0..4 LOOP
 
		requete := 'INSERT INTO echeancier_dossier(numedoss, numligdo, codorgfi, chdo, monteche)
 
		SELECT numedoss, numligdo, codorgfi, chdo, monteche
 
		FROM com_echeanchier_dossier@'||tab_dblinks(i);
    EXECUTE IMMEDIATE requete;
 
	END LOOP ;		
	COMMIT;
	----------------------------------------------------------------------------------------------------
 
	FOR i IN 0..4 LOOP
 
		requete := 'INSERT INTO contrat(numedoss, numecont, prixcess, convispa, datremcl, datremno, datrecno,
			datregdi, dasicocl, conetapa, refecont, matragen, typecont)
 
		SELECT numedoss, numecont, prixcess, convispa, datremcl, datremno, datrecno,
			datregdi, dasicocl, conetapa, refecont, matragen, typecont
 
		FROM com_contrat@'||tab_dblinks(i);
    EXECUTE IMMEDIATE requete;
 
	END LOOP ;
	COMMIT;
END;
/
Quand je lance la compilation, tout ce que j'ai comme message c'est:
"Warning: exécution terminée avec avertissement
PROCEDURE chargement() Compiled."

Comment voir ces avertissements? Je suis habitué à voir une floppée d'errors et de warnings explicite au moindre probleme quand je code en java ou C. Là par contre...je peux ecrire absolument n'importe quoi, ca passe!

Merci d'avance!