Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
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 02/02/2011, 15h35   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Par défaut Générer le DDL complet d'un schéma de huit mille objets

Bonjour,

En oracle 10g sur AIX je dois importer par impdp les données d'un schéma d'une instance vers un autre schéma.
L'import de touts les objets autre qu'index se passe relativement bien ~12 heures de temps, en revanche les index ça bloque.

J'ai donc décidé de faire cela en deux fois impdp de tout sauf les index, puis par SQL*Plus créer les index à partir d'un DDL global.
Pour récupérer le DDL des index j'utilise dbms_metadata.get_ddl, ce qui se passe bien mais entre chaque ordre create index (4000 index) je n'obtiens pas le séparateur ';' .

Savez vous comment faire pour obtenir un DDL "propre" sans passer par un éditeur car la fin des ordres est différente à chaque fois ?

Autre inconvénient avec dbms_metadata la ligne de description de l'index est coupée au niveau du nom des colonnes d'index, bien qu'ayant positionné les valeurs suivantes:
Code :
1
2
3
4
5
SET long 20000000
SET LINES 1000
SET pages 0
SET feedback off
SET echo off
Merci.
debdba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2011, 15h50   #2
Membre chevronné
 
Homme O. Joly
Support
Inscription : décembre 2010
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme O. Joly
Âge : 38
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Support
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2010
Messages : 287
Points : 617
Points : 617
Code sql :
1
2
3
 
SET long 9999999 longc 9999999 trimspool ON LINES 32767
exec dbms_metadata.set_transform_param( DBMS_METADATA.SESSION_TRANSFORM, 'SQLTERMINATOR', TRUE );

Code sql :
exec dbms_metadata.set_transform_param( DBMS_METADATA.SESSION_TRANSFORM, 'STORAGE', false);
peut être utile aussi.

Un site sympa sur dbms_metadata
ojo77 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 02/02/2011, 16h19   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 102
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 102
Points : 14
Points : 14
Merci cela est beaucoup plus "propre"
debdba est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web