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 21/01/2008, 13h44   #1
Membre régulier
 
Avatar de souch
 
Inscription : juin 2003
Messages : 145
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2003
Messages : 145
Points : 95
Points : 95
Par défaut Export de schema (via plsql), comment faire ?

Bonjour,
je tente depuis quelques heure d'exporter un schema d'une base oracle 10g via une requette pl/sql, sans succès.
J'ai créé a la base ma requette en prenant ce que me generait EnterpriseManager lors'on lui demande de faire une exportation (.dmp) de schema (avec seulement la structure), via EM ca fonctionne, mais pas moyen de le faire moi même (en passant par sqldeveloper).
. Je me connecte en tant que SYSTEM (j'ai aussi essayé sous le user du schema, et en SYS as SYSDBA...).
J'ai bien vu la doc sur ce même site, mais son application ne fonctionne pas... (dans mon cas).

voici un exemple de ce que je tente de faire passer:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
declare
  h1 NUMBER;
begin
  h1 := dbms_datapump.open (operation => 'EXPORT', job_mode => 'SCHEMA', job_name => 'BACKUP_SCHEMAALPHA01', version => 'COMPATIBLE'); 
 
  dbms_datapump.metadata_filter(handle => h1, name => 'SCHEMA_EXPR', value => 'IN(''SCHEMAALPHA'')');  
  dbms_datapump.add_file(handle => h1, filename => 'EXPORT_SCHEMAALPHA.DMP', directory => 'DM_PMML_DIR', filetype => 1); 
  dbms_datapump.set_parameter(handle => h1, name => 'INCLUDE_METADATA', value => 1); 
  dbms_datapump.data_filter(handle => h1, name => 'INCLUDE_ROWS', value => 0); 
  dbms_datapump.set_parameter(handle => h1, name => 'DATA_ACCESS_METHOD', value => 'AUTOMATIC'); 
 
  dbms_datapump.start_job(h1); 
  dbms_datapump.detach(handle => h1); 
end;
voici le résultat :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
Error report:
ORA-39002: opération non valide
ORA-06512: à "SYS.DBMS_DATAPUMP", ligne 4001
ORA-06512: à ligne 12
39002. 00000 -  "invalid operation"
*Cause:    The current API cannot be executed because of inconsistencies
           BETWEEN the API AND the current definition of the job.
           Subsequent messages supplied BY DBMS_DATAPUMP.GET_STATUS
           will further DESCRIBE the error.
*Action:   MODIFY the API call TO be consistent WITH the current job OR
           redefine the job IN a manner that will support the specified API.
une idée pour me sauver ?

Merci
__________________
D7/2007 - Asphyre 4.1
souch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2008, 10h30   #2
Invité régulier
 
Inscription : décembre 2004
Messages : 24
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2004
Messages : 24
Points : 5
Points : 5
Utilise DBMS_DATAPUMP.GET_STATUS pour lire l'erreur complète.

Tu auras ainsi une piste pour trouver l'origine de ton problème.
boxsters est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 15h20   #3
Membre du Club
 
Avatar de lmartin
 
Inscription : avril 2008
Messages : 61
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 61
Points : 61
Points : 61
Vérifies que ton fichier EXPORT_SCHEMAALPHA.DMP n'est pas présent dans ton répertoire correspondant au directory passé en paramètre, il ne l'écrasera pas et te retourne l'erreur.
Vérifie que ton directory est valide et correspond bien à un chemin de ton système d'exploitation.

Après adaptation du directory et du schéma j'ai testé ton code et ça marche très bien chez moi.
lmartin 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 05h50.


 
 
 
 
Partenaires

Hébergement Web