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