Je présume que vous utilisez l'ancien utilitaire IMP de ligne de commande, plutôt que Datapump? IMP n'abandonne pas la table existante et ne supprime pas les données existantes. Si nous définissons l'indicateur IGNORE=Y
, il insère les données qu'il peut contenir dans la table existante et signale les erreurs (clés dupliquées) dans le fichier journal.
Voici la table en cours ...
SQL> select * from t0;
COL1
----
rowA
rowC
SQL>
... et voici ce que je ... exporté
SQL> select * from t0;
COL1
----
rowA
rowB
SQL>
Une importation avec le réglage par défaut de IGNORE
échoue car la table existe mais en changeant le drapeau réussit:
SQL> host
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\temp>imp userid=APC tables=t0 file=apc.dmp
Import: Release 11.1.0.6.0 - Production on Thu Mar 25 18:22:21 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Password:
Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export file created by EXPORT:V11.01.00 via conventional path
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
. importing APC's objects into APC
. importing APC's objects into APC
IMP-00015: following statement failed because the object already exists:
"CREATE TABLE "T0" ("COL1" VARCHAR2(4) NOT NULL ENABLE) PCTFREE 10 PCTUSED "
"40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUP"
"S 1 BUFFER_POOL DEFAULT) LOGGING NOCOMPRESS"
Import terminated successfully with warnings.
C:\temp>imp userid=APC tables=t0 file=apc.dmp ignore=y
Import: Release 11.1.0.6.0 - Production on Thu Mar 25 18:22:33 2010
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Password:
Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export file created by EXPORT:V11.01.00 via conventional path
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
. importing APC's objects into APC
. importing APC's objects into APC
. . importing table "T0"
IMP-00019: row rejected due to ORACLE error 1
IMP-00003: ORACLE error 1 encountered
ORA-00001: unique constraint (APC.SYS_C001014543) violated
Column 1 rowA 1 rows imported
Import terminated successfully with warnings.
C:\Documents and Settings\clarkean>exit
SQL>
Note: une ligne a été rejetée (parce que COL1 est une clé primaire) et un deux a été inséré. Ainsi, la table a maintenant trois lignes:
SQL> select * from t0;
COL1
----
rowA
rowB
rowC
SQL>
Si vous un processus d'import/export qui ne remplace les structures de données/données à l'importation, alors vous devriez utiliser Datapump à la place. En fait, vous devriez utiliser Datapump de toute façon, car c'est un utilitaire beaucoup plus efficace. Find out more.
Merci APC .. Tout ce que vous avez dit est absolument correct. Mais la chose est que j'utilise l'utilitaire d'exportation et d'importation en mode Utilisateur (Propriétaire). Y at-il quelque chose de similaire à cela dans expdp et impdp – Abhiram
@Abhiram - Sure. Il y a un mode SCHEMA. http://download.oracle.com/docs/cd/B28359_01/server.111/b28319/dp_export.htm#i1007509 – APC