Je veux remplacer tous les objets existants dans ma base de données, pas seulement les tables, dans ma base de données actuelle.
J'ai exécuté expdp avec le paramètre full=yes
en tant qu'utilisateur système, à qui j'ai accordé datapump_imp_full_database
lorsque je suis connecté en tant que sysdba, à partir de l'instance à partir de laquelle j'importe. J'ai exécuté impdp sur la base de données cible avec le paramètre table_exists_action=replace
, mais (naturellement) seules les tables existantes ont été remplacées, mais pas les procédures, les fonctions, les vues.
Existe-t-il un équivalent de table_exists_action
pour tous les objets? Sinon, comment puis-je y parvenir?
Les deux bases de données sont Oracle 12c sur Windows 10.
Je ne pense pas qu'il existe une option "Remplacer" pour les objets non-table comme les procédures, les packages, etc.
La meilleure option serait de supprimer complètement le schéma avant l'importation du datapump. De cette façon, le vidage de données recréera le schéma et tous les objets contenus.
Il y a un piège - si vous supprimez le schéma - vous avez perdu toutes les autorisations accordées aux autres objets de schéma que le schéma possédait - et certaines fonctions/procédures/fonctions qui dépendent des objets d'autres schémas - ne seront pas compilées.
Donc - avant de vous abandonner - vous devez préparer des scripts pour reconstruire cet objet octroie.
select * from dba_tab_privs where grantee='<schema-for-drop/import>'
Vous souhaitez exporter les objets de la base de données source et les importer dans la base de données cible. Les objets de la base de données cible qui existent dans la base de données source doivent être remplacés par l'objet de la base de données source.
Vous pouvez peut-être utiliser la méthode suivante:
La nouvelle base de données cible contient les objets de la base de données source, car ils ne sont pas remplacés par l'importation et les objets de la base de données cible d'origine qui ne se trouvent pas dans la base de données source, car ils sont créés par l'importation de la base de données cible d'origine.
Il existe différentes façons de faire une copie de la base de données source