Bonjour
J'ai lancé un import (full) schema sur ma base et j'ai erreur constraint sys_c sur quelques tables de coup na pas importé certaines tables de ce schema
youcef
Bonjour
J'ai lancé un import (full) schema sur ma base et j'ai erreur constraint sys_c sur quelques tables de coup na pas importé certaines tables de ce schema
youcef
Il nous faudrait le message d'erreur en entier.
DBA Oracle
Rédacteur du blog : dbaoraclesql.canalblog.com
ORA-39083: Echec de la création du type dobjet TABLE:"HR"."ZX8Y" avec erreur :
2018-06-21-13:20:08 ERROR : ORA-02264: nom déjà utilisé par une contrainte existante
2018-06-21-13:20:08 ERROR : SQL en échec :
2018-06-21-13:20:08 ERROR : CREATE TABLE "HR"."ZX8Y" ("NUDOSS" NUMBER(38,0) CONSTRAINT "SYS_C0086812" NOT NULL ENABLE, "SOCDOS" CHAR(3 BYTE) CONSTRAINT "SYS_C0086813" NOT NULL ENABLE, "PGPDOS" NUMBER(38,0) CONSTRAINT "SYS_C0086814" NOT NULL ENABLE, "FLSOED" CHAR(1 BYTE) CONSTRAINT "SYS_C0086815" NOT NULL ENABLE, "FLEMAN" CHAR(1 BYTE) CONSTRAINT "SYS_C0086816" NOT NULL ENABLE, "FLEMAA"
C'est quand même beaucoup plus clair que ton message précédent.
Tu veux créer une table avec une contrainte d'intégrité déjà existante dans une autre table : c'est impossible!
Renomme tes contraintes une par une pour voir laquelle pose pb.
Tu peux regarder aussi dans user_constraints pour voir dans quelle table existe une ou plusieurs des contraintes que tu veux créer.
DBA Oracle
Rédacteur du blog : dbaoraclesql.canalblog.com
c'est pas moi qui essay de creer cette table
c'est l'import qui essay de créer cette tables avec une constrainte sys_c qui existe déja
comment je peux resoudre le probléme de l'import
Y'a un post de Tom Kyte qui explique certains doublons https://asktom.oracle.com/pls/apex/a...ys-constraints
C'est vrai je n'avais jamais pensé que ces un-named contraintes (de NOT NULL) pouvaient poser problème à l'import et même des problèmes de perf.
J'ai regardé le paramètre EXCLUDE:CONSTRAINT de l'impdp, mais visiblement cela ne fonctionnera pas (à vérifier)
Sinon, tu es bon pour générer le fichier SQL de créationd e table, puis l'exécuter et voir les erreurs une par une, puis de faire l'import des données.EXCLUDE=CONSTRAINT will exclude all nonreferential constraints, except for NOT NULL constraints and any constraints needed for successful table creation and loading.
More Code : More Bugs. Less Code : Less Bugs
Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP
L'idéal serait de modifier la table HR.ZX8Y en renommant toutes les contraintes d'intégrité.
Exemple pour la première.
Code : Sélectionner tout - Visualiser dans une fenêtre à part alter table HR.ZX8Y rename constraint SYS_C0086812 to NUDOSS_NOT_NULL;
DBA Oracle
Rédacteur du blog : dbaoraclesql.canalblog.com
Ce serait bien d'avoir le message en entier, avec les erreurs IMP aussi, ainsi que la commande d'import.
Sinon il suffit de drop la table avant.
Bein non justement, les contraintes unnamed n'ont pas de nom lié à la table.
Tu crées une table avec une contrainte NOT NULL sur une base A, tu crées une autre table avec une contrainte NOT NULL dans une base B, les 2 peuvent avoir le même nom de contrainte (genre SYS_C0014579) généré par Oracle.
Si tu exportes/importes le schéma de la base B dans la base A, tu peux avoir un doublon de contrainte.
A vérifier bien sûr, je n'ai pas fait de test avec un export en fichier sql pour voir si Oracle mettait ces noms de contraintes dans le fichier ddl.
More Code : More Bugs. Less Code : Less Bugs
Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP
Ce dont j'ai du mal à comprendre c'est l'ordre de CREATE table qui semble vouloir fixer le nom des contraintes, or ce n'est pas ce que je constate :
Il nous faudrait à minima la commande d'import, et idéalement aussi la commande d'export.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 SQL> create table test_contrainte(id number(10) primary key, c1 number(5) not null, c2 number(5) check (c2 > 5)); Table creee. SQL> desc test_contrainte Nom NULL ? Type ----------------------------------------- -------- ---------------------------- ID NOT NULL NUMBER(10) C1 NOT NULL NUMBER(5) C2 NUMBER(5) SQL> set linesize 500 SQL> select constraint_name name, constraint_type type, search_condition from user_constraints where table_name = 'TEST_CONTRAINTE'; NAME T SEARCH_CONDITION ------------------------------ - -------------------------------------------------------------------------------- SYS_C00104933 C "C1" IS NOT NULL SYS_C00104934 C c2 > 5 SYS_C00104935 P SQL> [oracle@localhost ~]$ expdp SKUATAMAD/a schemas=SKUATAMAD include=TABLE:\"= \'TEST_CONTRAINTE\'\" directory=DATA_PUMP_DIR dumpfile=TEST_CONTRAINTE.dmp logfile=TEST_CONTRAINTE.log ......... [oracle@localhost ~]$ impdp SKUATAMAD DIRECTORY=DATA_PUMP_DIR DUMPFILE=TEST_CONTRAINTE.dmp SQLFILE=DATA_PUMP_DIR:TEST_CONTRAINTE_impdp.sql ....... [oracle@localhost dpdump]$ cat TEST_CONTRAINTE_impdp.sql ...... CREATE TABLE "SKUATAMAD"."TEST_CONTRAINTE" ( "ID" NUMBER(10,0), "C1" NUMBER(5,0) NOT NULL ENABLE, "C2" NUMBER(5,0) ) SEGMENT CREATION DEFERRED PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "USERS" ; -- new object type path: SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT ALTER TABLE "SKUATAMAD"."TEST_CONTRAINTE" ADD PRIMARY KEY ("ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 NOCOMPRESS LOGGING TABLESPACE "USERS" ENABLE; ALTER TABLE "SKUATAMAD"."TEST_CONTRAINTE" ADD CHECK (c2 > 5) ENABLE;
Merci pour ce test Skuatamad, j'avias pas le temps de tester
Si ça se trouve, le problème vient d'un nom de contrainte autre, qu'on ne voit pas dans le message tronqué
More Code : More Bugs. Less Code : Less Bugs
Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP
Merci pour vos réponses
j'ai refais l'import et sa marché , c la seule solution pour solution je pense
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager