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 :

Comment exporter et importer des procédures et des fonctions PL/SQL


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut Comment exporter et importer des procédures et des fonctions PL/SQL
    Bonjour à la communauté,

    Je gère un progiciel de CRM dont tout le paramétrage est stocké en base de données (Oracle 9.2).
    Jusqu'ici, pour déployer les évolutions d'un environnement à un autre, je faisais un export à partir de la base source puis un import sur la base cible.
    Mais récemment, nous avons ajouté quelques procédures et fonctions PL/SQL.
    A ma connaissance, les fonctionnalités d'export et d'import ne prennent pas en compte ces objets.

    Comment puis-je recopier ces objets d'une base à une autre?

    D'avance merci.

    Alex

  2. #2
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 181
    Points : 166
    Points
    166
    Par défaut
    bonjour,
    tu peux générer des script de création pour tes procedures que et tu les execute sur la deuxième base

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    exp/imp fonctionne aussi avec les packages/fonctions/procedures, si tu exportes tout le schema

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exp userid=scott/tiger owner=scott rows=n indexes=n triggers=n statistics=none constraints=n file=scott.dmp
    pour exporter une seule procedure, il y a dbms_metadata qui te permets d'exporter le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SQL> exec dbms_metadata.set_transform_param(DBMS_METADATA.SESSION_TRANSFORM,'SQLTERMINATOR',true)
     
    PL/SQL procedure successfully completed.
     
    SQL> set head off long 1000000 longc 1000000 feedb off lin 1000 trimsp on pages 0
    SCOTT@LSC01> select dbms_metadata.get_ddl('PROCEDURE','P') from dual;
     
      CREATE OR REPLACE PROCEDURE "SCOTT"."P" is begin null; end;
    /

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Merci pour la rapidité des réponses.

    L'exécution des scripts de création est la solution que je veux éviter. En effet, les procédures vont nécessairement évoluer et je cherche à obtenir la méthode la plus automatisée.

    La solution avec export/import du schéma sans les lignes (rows=n) devrait bien convenir, je vais tester cela.

    Alex

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    L'export du schéma reste trop large, il intègre les structures des tables, les séquences (que je ne veux surtout pas propager), etc.

    J'aurai voulu spécifier quelles procédures et quelles fonctions je veux exporter (un peu comme on peut spécifier une liste de tables).

    Alex

  6. #6
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Dbms_metadata ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 41
    Points : 26
    Points
    26
    Par défaut
    Je ne vais pas pouvoir tester DBMS_METADATA avant un petit moment (sans bureau pour cause de déménagement aujourd'hui puis vacances).

    Par contre, nous allons passer de Oracle 9.i à Oracle 10.g à l'automne et j'ai vu qu'il y a un nouvel outil: DATAPUMP pour remplacer à terme les EXP et IMP.
    Peut-être que DATAPUMP répond à ma demande (dans ce cas, je pourrais utiliser les scripts de génération pour quelques semaines)...

    Alex

  8. #8
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    datapump fonctionne grâce à DBMS_METADATA et c'est exactement ce qu'il te faut ;-)

Discussions similaires

  1. Comment exporter et importer les partitions d'une table
    Par marvelromy dans le forum Import/Export
    Réponses: 2
    Dernier message: 04/10/2010, 17h19
  2. Réponses: 4
    Dernier message: 02/04/2008, 17h51
  3. Réponses: 3
    Dernier message: 13/09/2007, 18h11
  4. Combiner des procédures et des méthodes
    Par Laurent Dardenne dans le forum Delphi
    Réponses: 14
    Dernier message: 04/09/2007, 23h37

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