2016-04-28 2 views
0

Je reçois des sauvegardes d'une base de données Oracle dans ma base de données Oracle depuis maintenant 2 ans. Ma société exécute la version 10.2.0.1.0 et nous recevons les exportations de la version 12.1.0.2.0. Ils utilisent expdp et j'utilise impdp. J'ai ajouté une nouvelle colonne dans ma base de données, en utilisant ce scriptL'importation de tables échoue avec le code d'erreur ORA-31693

ALTER TABLE CONTAINERS 
ADD ("SHELL" NUMBER(14, 6) DEFAULT 0); 

Après l'exécution ci-dessus sur les deux bases de données maintenant, quand ils envoient une exportation pour moi la table en question ne sera pas importer. Je reçois l'erreur suivante.

ORA-31693: Table data object "PAS"."CONTAINERS" failed to load/unload and is being skipped due to error: 
ORA-02354: error in exporting/importing data 
ORA-02373: Error parsing insert statement for table "PAS"."CONTAINERS". 
ORA-00904: "SYS_NC00067$": invalid identifier 

Cette erreur a été en cours pendant deux semaines, j'ai essayé de résoudre le problème de multiples façons, ceci est mon dernier recours pour ainsi dire.

Toute aide est grandement appréciée.

Répondre

1

Avez-vous essayé de retrouver SYS_NC00067? Cela ressemble à un nom de colonne attribué par le système. Cela arrive parfois lorsque vous ajoutez un index basé sur une fonction. Avez-vous créé un index basé sur une fonction sur Shell?

+0

Bonne question, j'ai fait, cette colonne n'existe pas dans ma base de données, je vérifie avec le DBA de l'autre côté pour voir s'ils ont la colonne. Je n'ai pas créé d'index basé sur une fonction sur shell. En fait, shell n'est pas un index ou une clé pour quoi que ce soit. Je vais ajouter cette friandise à ma question principale. et revenez avec vous sur la colonne dans l'autre base de données. – ChettM

+0

Ok vous m'avez là. Il existe une fonction pour cette table qui utilise la nouvelle colonne. Bien sûr, j'ai mis à jour cette fonction à côté de la colonne. Il ne m'est jamais venu à l'esprit que cela pourrait aider le problème que j'ai. Je viens d'examiner le code de la fonction et j'ai trouvé une faute de frappe très mineure. J'ai informé le DBA de l'autre côté et je vais recevoir un autre ensemble de données, nous verrons si cela fait quoi que ce soit. – ChettM

+0

Ugh ... cela peut être un problème, car je crois que les colonnes virtuelles basées sur les fonctions ont été introduites dans Oracle 11. Donc, "leur" db les supporte mais pas les vôtres. Bonne chance! – mathguy