IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

EXECUTE IMMEDIATE et Compilation sous Oracle Sql Developer


Sujet :

PL/SQL Oracle

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut EXECUTE IMMEDIATE et Compilation sous Oracle Sql Developer
    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!

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Enlève les sauts de lignes dans la chaine de caractère pour l'execute immediate.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    Ok pour enlever les sauts de ligne... mais ca va etre moche.

    Sinon J'ai la version 1.5.1.54.40 ... et en bas il y a "Messages" et "Script Output"

    Je peux ecrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR i IN 0."'ç(è"'ç(è"à(è.4 LOOP
    ca passera nickel lol

  4. #4
    Invité
    Invité(e)
    Par défaut
    pour ce qui est entre quote, ce n'est pas compilé donc tu peux y mettre n'importe quoi.
    Donc pour les execute immediate, c'est bien de tester son code avant, ou de l'afficher pour tester...

Discussions similaires

  1. Écrire une requête sous Oracle SQL Developer 7
    Par NFHnv dans le forum Débuter
    Réponses: 1
    Dernier message: 08/11/2012, 14h07
  2. [Oracle SQL Developer] Découvrez le nouvel outil d'Oracle
    Par Jaouad dans le forum Sql Developer
    Réponses: 94
    Dernier message: 30/03/2011, 13h09
  3. Oracle sql developer
    Par nita2006 dans le forum Sql Developer
    Réponses: 1
    Dernier message: 08/06/2009, 11h52
  4. Oracle Sql Developer et CVS
    Par dgl33 dans le forum Sql Developer
    Réponses: 5
    Dernier message: 25/07/2007, 09h54
  5. Creation d'un utilisateur sous Oracle 10g developer
    Par anouar dans le forum Oracle
    Réponses: 2
    Dernier message: 17/08/2006, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo