Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur 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 20/01/2012, 13h54   #1
Membre à l'essai
 
Inscription : avril 2003
Messages : 92
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2003
Messages : 92
Points : 24
Points : 24
Par défaut [10gR2] dbms_redefinition error lors d'un partitionnement

Bonjour à tous

Je me tourne vers vous car j'ai un petit souci avec l'outils de redefinition d'oracle



J'ai une table que je souhaite partitionner avec l'outils dbms_redefinition comme suit :
Code :
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
45
46
47
48
49
50
51
52
53
54
55
56
 
 
CREATE TABLE USR.T1 
(
  MSG_ID        NUMBER(10)                  NOT NULL,
  QTTE_ID        NUMBER(10)                  NOT NULL,
  POINT_ID    VARCHAR2(15 BYTE),
  POINT_CODE        VARCHAR2(30 BYTE),
  FLAG_TYPE          VARCHAR2(15 BYTE),
  QTTE_UNIT          VARCHAR2(15 BYTE),
  QTTE_TYPE          VARCHAR2(15 BYTE)           NOT NULL,
  QTTE_DATEDEBUT     DATE                        NOT NULL,
  QTTE_DATEFIN       DATE                        NOT NULL,
  QTTE_VALUESTR   VARCHAR2(20 BYTE),
  QTTE_VALUEFL    FLOAT(126),
  QTTE_PR      NUMBER(2),
  QTTE_PRROLE  VARCHAR2(50 BYTE),
  QTTE_ROLE          VARCHAR2(50 BYTE),
  QTTEFLG_ROLE       VARCHAR2(50 BYTE)
)
TABLESPACE DATA
 
CREATE TABLE USR.T1_TEMP 
(
  MSG_ID        NUMBER(10)                  NOT NULL,
  QTTE_ID        NUMBER(10)                  NOT NULL,
  POINT_ID    VARCHAR2(15 BYTE),
  POINT_CODE        VARCHAR2(30 BYTE),
  FLAG_TYPE          VARCHAR2(15 BYTE),
  QTTE_UNIT          VARCHAR2(15 BYTE),
  QTTE_TYPE          VARCHAR2(15 BYTE)           NOT NULL,
  QTTE_DATEDEBUT     DATE                        NOT NULL,
  QTTE_DATEFIN       DATE                        NOT NULL,
  QTTE_VALUESTR   VARCHAR2(20 BYTE),
  QTTE_VALUEFL    FLOAT(126),
  QTTE_PR      NUMBER(2),
  QTTE_PRROLE  VARCHAR2(50 BYTE),
  QTTE_ROLE          VARCHAR2(50 BYTE),
  QTTEFLG_ROLE       VARCHAR2(50 BYTE)
)
TABLESPACE DATA
PARTITION BY RANGE (MSG_ID) (
PARTITION P_200601 VALUES LESS THAN (663451),
 PARTITION P_200602 VALUES LESS THAN (687541),
 PARTITION P_200603 VALUES LESS THAN (716092),
 PARTITION P_200604 VALUES LESS THAN (745932),
 PARTITION P_200605 VALUES LESS THAN (776246),
 PARTITION P_200606 VALUES LESS THAN (804039),
 PARTITION P_200607 VALUES LESS THAN (832697),
 PARTITION P_200608 VALUES LESS THAN (862104),
 PARTITION P_MAX VALUES LESS THAN (MAXVALUE)
  );
 
 
1- dbms_redefinition.start_redef_table( 'USR', 'T1', 'T1_TEMP' );
2- dbms_redefinition.copy_table_dependents ('USR' ,'T1','T1_TEMP',  DBMS_REDEFINITION.CONS_ORIG_PARAMS, TRUE, TRUE, TRUE, TRUE, num_errors,true );
suite à l'exécution de mon script, je me suis retrouvé avec deux erreurs dans DBA_REDEFINITION_ERRORS :
Code :
1
2
3
4
5
6
7
8
SELECT * FROM dba_redefinition_errors
OBJECT_TYPE	OBJECT_OWNER	OBJECT_NAME	BASE_TABLE_OWNER	BASE_TABLE_NAME	DDL_TXT
 
CONSTRAINT	USR	FK_DISPOSE_REF	USR	T1	ALTER TABLE "USR"."T1_REFERENCE" ADD CONSTRAINT "TMP$$_FK_DISPOSE_REF0" FOREIGN KEY ("MSG_ID", "QTY_NUMERO")
	  REFERENCES "USR"."T1_TEMP" ("MSG_ID", "QTTE_ID") DISABLE
 
CONSTRAINT	USR	FK_DISPOSE_PTY	USR	T1	ALTER TABLE "USR"."T1_PARTY" ADD CONSTRAINT "TMP$$_FK_DISPOSE_PTY0" FOREIGN KEY ("MSG_ID", "QTY_NUMERO")
	  REFERENCES "USR"."T1_TEMP" ("MSG_ID", "QTTE_ID") DISABLE

1- Je voudrais savoir s'il est possible de savoir d'ou vient cette erreur.
2- Pourquoi les deux constraints n'ont pas été copié ?
3- Comment résoudre ce genre de problème.


Dans ma phase de test, j'ai eu ce type d'erreur que j'ai réglé en agrandissant les tablespaces. Dans ma prod, j'ai aussi agrandi les tablespace au maximum mais le problème est revenu.

Merci pour votre aide
elkamaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 14h10   #2
Membre à l'essai
 
Inscription : avril 2003
Messages : 92
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2003
Messages : 92
Points : 24
Points : 24
bonjour

est ce que quelqu'un saurait me confirmer qu'un simple register_dependent_object sur ces objets serait suffisant pour passer aux etapes suivantes (sync et finish)

Merci de votre aide, j'ai fait une deuxieme tentative en prod et le résultat et le meme sauf que c'est une seule contraint qui n'a pas été copié

Merci a tous
elkamaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 14h59   #3
Membre à l'essai
 
Inscription : avril 2003
Messages : 92
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2003
Messages : 92
Points : 24
Points : 24
rebonjour

je suis bien coincé car j'ai mis a true le ignore_error, donc je n'ai pas l'erreur oracle

Code :
dbms_redefinition.copy_table_dependents ('ADMIN_OM' ,'RUBRIQUE_QUANTITE_JOURNALIERE','RUBRIQUE_QTTE_JOURNALIERE_TEMP',  DBMS_REDEFINITION.CONS_ORIG_PARAMS, TRUE, TRUE, TRUE, TRUE, num_errors,true );
elkamaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h56.


 
 
 
 
Partenaires

Hébergement Web