Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/08/2006, 12h07   #1
Invité de passage
 
Inscription : août 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 19
Points : 3
Points : 3
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
Alexandre_P est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 12h18   #2
Membre habitué
 
Inscription : août 2006
Messages : 181
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 181
Points : 128
Points : 128
bonjour,
tu peux générer des script de création pour tes procedures que et tu les execute sur la deuxième base
Oraman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 12h34   #3
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

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

Code :
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 :
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;
/
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 15h03   #4
Invité de passage
 
Inscription : août 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 19
Points : 3
Points : 3
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
Alexandre_P est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2006, 17h24   #5
Invité de passage
 
Inscription : août 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 19
Points : 3
Points : 3
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
Alexandre_P est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 10h23   #6
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
Dbms_metadata ?
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 14h37   #7
Invité de passage
 
Inscription : août 2006
Messages : 19
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 19
Points : 3
Points : 3
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
Alexandre_P est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 15h03   #8
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 927
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

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

Informations forums :
Inscription : décembre 2005
Messages : 2 927
Points : 4 549
Points : 4 549
datapump fonctionne grâce à DBMS_METADATA et c'est exactement ce qu'il te faut ;-)
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h37.


 
 
 
 
Partenaires

Hébergement Web