J'ai un objet appelé cot_ntn_pi_v
. On m'a dit que c'était un synonyme. Il n'apparaît pas dans la table all_synonym. Cela ressemble à une vue ou une table mais je ne la trouve pas dans la table tous les objets. Je peux le sélectionner, mais je ne peux pas le supprimer car il "n'existe pas" et je ne peux pas créer une nouvelle table avec le même nom que "le nom est déjà utilisé par un autre objet".
Suis-je en train de devenir fou ou de faire quelque chose de vraiment stupide?
Les types d'objets dans le même espace de noms qu'une table sont:
C'est donc probablement l'un de ces types. Si vous pouvez le sélectionner, il exclut les cinq premiers, en le laissant soit une table, une vue, un synonyme privé ou une vue matérialisée.
Lorsque vous avez recherché dans all_objects
etc. vous avez utilisé des majuscules? Par exemple,
select *
from ALL_OBJECTS
where OBJECT_NAME = 'COT_NTN_PI_V';
Si vous utilisez un outil comme SQL Developer ou Toad, vous pouvez le laisser décrire l'objet pour vous. Mettez en surbrillance le nom dans l'outil et appuyez sur Shift-F4
dans Developer ou F4
dans Toad. Toad fournit beaucoup de description sur l'objet tandis que Developer, dans l'onglet Détails, aura une ligne avec TABLE_NAME
ou MVIEW_NAME
dedans et ça vous montrera ce que c'est.
Une fois que vous savez ce que c'est, il sera plus facile de savoir comment le déposer.
Vous ne pourrez peut-être pas voir l'objet dans les tables ALL_% si vous ne disposez d'aucune autorisation sur l'objet lui-même, alors vérifiez dans la table DBA_OBJECTS (vous aurez besoin d'autorisations/d'un utilisateur dûment autorisé pour ce faire):
select *
from DBA_OBJECTS
where object_name = 'COT_NTN_PI_V';
Si cela ne produit aucune sortie, vous pouvez archiver les tables du dictionnaire de données Oracle brutes avec cette requête:
select u.name as owner, o.name as object_name,
decode(o.type#, 0, 'NEXT OBJECT', 1, 'INDEX', 2, 'TABLE', 3, 'CLUSTER',
4, 'VIEW', 5, 'SYNONYM', 6, 'SEQUENCE',
7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
11, 'PACKAGE BODY', 12, 'TRIGGER',
13, 'TYPE', 14, 'TYPE BODY',
19, 'TABLE PARTITION', 20, 'INDEX PARTITION', 21, 'LOB',
22, 'LIBRARY', 23, 'DIRECTORY', 24, 'QUEUE',
28, 'Java SOURCE', 29, 'Java CLASS', 30, 'Java RESOURCE',
32, 'INDEXTYPE', 33, 'OPERATOR',
34, 'TABLE SUBPARTITION', 35, 'INDEX SUBPARTITION',
39, 'LOB PARTITION', 40, 'LOB SUBPARTITION',
43, 'DIMENSION',
44, 'CONTEXT', 47, 'RESOURCE PLAN',
48, 'CONSUMER GROUP',
51, 'SUBSCRIPTION', 52, 'LOCATION', 56, 'Java DATA', 'UNKNOWN') as type,
o.ctime, o.mtime,
to_char(o.stime, 'YYYY-MM-DD:HH24:MI:SS'),
decode(o.status, 0, 'N/A', 1, 'VALID', 'INVALID') as status
from sys.obj$ o, sys.user$ u
where o.owner# = u.user#
and o.linkname is null
and (o.type# not in (1 , 10) or
(o.type# = 1 and 1 = (select 1
from sys.ind$ i
where i.obj# = o.obj#
and i.type# in (1, 2, 3, 4, 6, 7, 9))))
and o.name = 'COT_NTN_PI_V';