Certaines colonnes de type RAW sur Oracle sont converties en colonnes de type UUID suite à la migration vers PostgreSQL. D'autres colonnes de type RAW sont converties en colonnes de type BYTEA, en fait toutes celles qui n'avaient pas la valeur par défaut sys_guid et c'est le cas des clés étrangères.
Cela rend impossible les jointures. Est-il possible de convertir les colonnes BYTEA contenant des identifiants universels uniques en UUID ?
Réponse :
Le script de création des tables a été obtenu automatiquement grâce à ora2pg. Il est toujours possible d'effectuer une conversion supplémentaire après la migration si certains mappings automatiques ne conviennent pas. Exemple ici si la colonne NOM_COLONNE de type bytea contient effectivement des UUID :
Code : Tout sélectionner
alter table NOM_TABLE alter column NOM_COLONNE type uuid USING CAST( substring(CAST (NOM_COLONNE AS text) from 3) AS uuid);