|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() |
Bonjour à toutes et à tous.
J'ai une base Oracle 8.1.7 sur une machine AIX 4.2 et je voudrais faire un export des index uniquement pour obtenir un fichier regroupant le script de création de tous mes index et contraintes. Je suis pour ma part sur une station sous Windows XP avec un client Oracle 9.1. J'utilise PL/SQL Developper pour accéder à ma BDD depuis ma station. Quand j'essaie sous PL/SQL Developper de faire un export avec juste les index et les contraintes, j'ai l'erreur suivante qui s'affiche : Code :
J'ai également vu que je pouvais faire moi-même une sorte de commande pour pouvoir exporter directement sous la machine unix contenant la base; une commande du genre exp blablabla. Mais visiblement cela donne des fichiers *.dmp, or moi je voudrais avoir le fichier regroupant le script SQL de création des index et des contraintes, pour pouvoir les recréer quand je le désire. Est-ce que quelqu'un aurait une idée sur la manière de s'y prendre pour résoudre ce problème ? Cdt. Bahan |
||
|
|
00
|
|
|
#2 |
![]() ![]() Consultant en Business Intelligence Inscription : janvier 2007 Messages : 1 192 ![]() |
Bonjour,
Pour faire ce genre de scripts j'utilise une procedure pl/sql qui me crée dynamiquement mon fichier. Je vais chercher les infos dans les tables systems et avec le package utl_file ou dbms_output je crée mon fichier. Je ne sais pas si il y a mieux, mais au moins ça marche. |
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
On peut aussi utiliser l'option indexfile de la commande imp qui génère le DDL de fichier export passé en paramètre: http://www.developpez.net/forums/sho...ight=indexfile
|
|
|
00
|
|
|
#4 |
![]() Inscription : décembre 2002 Messages : 2 397 ![]() |
De manière générale, l'export avec l'option ROWS=NO permet d'extraire la définition des objets.
Il faut ensuite aller piocher dans le DMP pour sélectionner les ordres DDL qui nous intéressent. Heureusement, cette manoeuvre ingrate peut être assistée par un utilitaire dédié, par exemple http://www.ddlwizard.com/ (Cet outil est gratuit) |
|
|
00
|
|
|
#5 | |||
|
Membre du Club
![]() |
Citation:
En regardant dans les vues système j'en ai vu une sympa nommé : SYS.ALL_CONSTRAINTS. En appliquant un filtre sur le bon owner je pense que je devrais pouvoir récupérer assez d'information pour créer un script SQL de création d'index. Une question, je note six valeurs différentes pour la colonne CONSTRAINT_TYPE - C - O - P - R - U - V Je ne trouve pas la signification de ces lettres dans la FAQ Oracle 8i. M'est avis que P = Primary Key, U = Unique Index mais pour le reste .Quelqu'un saurait de manière certaine ce que signifie chacune de ces lettres ? Citation:
Citation:
Bahan |
|||
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
|
|
|
00
|
|
|
#7 | |
![]() Inscription : décembre 2002 Messages : 2 397 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | |
|
Membre du Club
![]() |
Merci pour le lien.
Citation:
Edit : Et également la vue SYS.ALL_IND_COLUMNS qui donne la liste des colonnes sur lesquelles est fondé chaque index. Bahan |
|
|
|
00
|
|
|
#9 | ||
|
Membre du Club
![]() |
Bon alors, ça donne ceci pour les index :
Code :
Quelqu'un saurait s'il existe une vue où le tablespace est spécifié pour une contrainte donnée ? EDIT : d'après ce que je peux voir, les contraintes seraient situés dans le tablespace INDEX correspondant au tablespace DATA de leur table. Cela permet de retrouver assez facilement le tablespace et rend ce script applicable aux contraintes de clef. Merci à tous et à toutes pour votre aide. En espérant que cela sera utile à quelqu'un un jour Bahan |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com