Bonjour à tous,
Aujourd'hui je suis confronté à un problème auquel je dois trouver une solution.
Voici les données du problème:
Je dispose d'une base de données Oracle 9i.
J'ai un binaire qui lance une succession de procédures oracle (environ 80). Ces procédures ont pour objectif de remplir une table principale (que j'appelerai T1).
Ces procédures peuvent utilisées une ou plusieurs tables temporaires (TMP1, TMP2, ...).
Le problème: certaines données stockées dans les tables temporaires sont plus grandes que les champs destinés à les accueillir dans T1.
Exemple:
- table TMP1.CHAMP1 --> VARCHAR2(50)
- table T1.DEST --> VARCHAR2(30)
Dans ce cas, l'insertion d'une donnée de 40 char de TMP1.CHAMP1 vers T1.DEST provoque une exception oracle, que vous connaissez tous.
Je dois trouver une solution pour éviter cette exception et ne pas arrêter le process.
Ma première idée était d'utiliser un trigger pour faire un substr. Dommage, le trigger passe après le check des données.
Ma seconde et dernière idée est d'aligner la structure des tables temporaires avec la table final. Problème: beaucoup de procédures à corriger, pas mal de table à vérifier + possible impacts sur le système.
Maintenant je sollicite votre aide, si vous avez de meilleures idées (s'il en existe lool). Merci d'avance
Partager