Désactivation de la fonction DEFERRED_SEGMENT_CREATION

La fonction DEFERRED_SEGMENT_CREATION a été introduite par Oracle en version 11.2. La valeur par défaut est ON dans toutes les installations. Lorsque cette fonction est activée, une instruction de création de table ne crée pas immédiatement de table. La table n'est créée qu'après insertion d'une ligne de données. De ce fait, des problèmes peuvent survenir lors de l'export et de l'import de schémas Oracle Hyperion Financial Management, car certaines tables risquent de ne pas être créées au cours de l'import. Il est conseillé de désactiver cette fonction ; les tables sont alors créées automatiquement. Pour désactiver cette fonction, connectez-vous à votre instance en tant que SYSTEM ou SYS et exécutez la commande suivante :

alter system set deferred_segment_creation=false; 

Toute table créée après émission de cette instruction est créée automatiquement. Si vous avez déjà une instance avec des tables vides et que vous voulez exporter l'application, vous pouvez modifier chaque table individuellement de façon à forcer la création et à permettre à la table d'être utilisée par la commande EXP (export).

Pour déterminer si un schéma comporte des tables vides, exécutez l'une des deux commandes suivantes :

select segment_name, segment_type, extents from dba_segments where extents < 1 and segment_type='TABLE' and owner='<hfm db schema>'
select table_name from all_tables where owner='<hfm db schema>' and table_name not in (select segment_name from dba_segments where owner='<hfm db schema>' and segment_type='TABLE' and extents>0)

Exécutez la commande suivante pour chaque table vide :

alter table <table_name> allocate extent