Bonjour à toutes et tous,

J'ai rencontré le souci suivant lors de l'export puis import d'une table via SQL Developer. Suite à l'exposé du problème j'expliquerais l'hypothèse que j'ai pu formuler quant au "pourquoi?". Si à tout hasard vous aviez un meilleur "pourquoi?" voire un "comment?" vous feriez de moi le plus heureux des newbies sur ce forum

J'ai donc une table que je souhaite exporter depuis Oracle pour l'importer sur une autre connexion (Oracle également). J'ai essayé avec plusieurs formats d'export mais mettons que je décharge ma table depuis la connexion A en .tsv, fichiers distincts.

Sous la connexion B je lance le script de création de table, une fois celle-ci créée je clique-droit dessus>Import data. Je vérifie les définitions des champs, leurs correspondances, tout semble OK, je lance la manip' et horreur: "Erreur: ORA-12899 valeur trop grande pour la colonne MON_SCHEMA.MA_TABLE.MA_COLONNE (réelle : 31, maximum : 30)".

Cette erreur se produit sur plusieurs champs (mais pas tous) de types variés (VARCHAR, DATE, NUMBER). En poursuivant la requête malgré les erreurs je constate que la différence de taille de chaîne (=réelle-maximum) n'excède pas les 5 ou 6 caractères.

Je me dis que le logiciel fait une estimation des tailles de champs sur les premiers enregistrements, je fais donc un MAX(LENGTH()) sur tous mes champs: les valeurs renvoyées correspondent bien aux définitions de champs fournies par Oracle lors du déchargement.

En y pensant en l'air je me dis qu'il est possible que certains caractères "prennent plus de place" dans le format d'export (ajout de caractères d'échappement pour les éventuels séparateurs contenus dans les champs, transformation des caractères spéciaux sous une forme moins ambigüe mais plus longue...).
Toujours est-il que de ne pas retomber sur mes pieds d'Oracle à Oracle me rend un peu chagrin (si Oracle modifie les données en export, pourquoi ne fait-il pas l'opération inverse lors de l'import?) et que surtout, pendant ce temps là, ben il n'y a rien qui est fait ^^.

Merci par avance pour votre attention et éventuels éléments de réponses.
Merci aussi à la communauté qui, sans le savoir, m'a souvent tiré de l'ornière auparavant.

Bien à vous,
H.