Je faisais un script Oracle tout simple pour donner la permission sur les tables d’un utilisateur vers un autre mais à l’exécution je me suis aperçu qu’une entrée dans la table ‘user_tables’ faisait référence à un table qui n’existe pas!
J’ai 2 questions:
- comment est-ce possible (j’ai remarqué que le nom de cette table dans la colonne table_name n’est pas en majuscule comme les autres tables)?
- comment supprimer cette entrée de user_tables (et dba_all_tables)?
Il est impossible de modifier une table système (encore heureux).
Peut-être que tu peux discriminer par une des colonnes de user_tables (dropped, temporary) ? Cela ne m’est jamais arrivé ton souci.
En regardant dans sys.obj$ je me suis rendu compte que DATAOBJ# pour cette entrée était NULL (contrairement aux autres tables de l’utilisateur). IL semble que c’est la faute à un import foireux. Mais bon, comme la personne responsable de ça n’est plus là et que ce n’est pas critique …