Ich habe ein Objekt namens cot_ntn_pi_v
. Mir wurde gesagt, dies sei ein Synonym. Es wird nicht in der Tabelle all_synonyms angezeigt. Es sieht aus wie eine Ansicht oder Tabelle, aber ich kann sie nicht in der Tabelle mit allen Objekten finden. Ich kann daraus auswählen, aber ich kann es nicht löschen, da es "nicht existiert" und ich kann keine neue Tabelle mit demselben Namen wie "Der Name wird bereits von einem anderen Objekt verwendet" erstellen.
Werde ich verrückt oder mache ich etwas wirklich Dummes?
Objekttypen im selben Namespace wie eine Tabelle sind:
Daher ist es wahrscheinlich einer dieser Typen. Wenn Sie daraus auswählen können, werden die ersten fünf ausgeschlossen, sodass es sich entweder um eine Tabelle, eine Ansicht, ein privates Synonym oder eine materialisierte Ansicht handelt.
Bei der Suche in all_objects
Usw. haben Sie Großbuchstaben verwendet? Zum Beispiel,
select *
from ALL_OBJECTS
where OBJECT_NAME = 'COT_NTN_PI_V';
Wenn Sie ein Tool wie SQL Developer oder Toad verwenden, können Sie das Objekt für sich beschreiben lassen. Markieren Sie den Namen im Tool und drücken Sie Shift-F4
In Developer oder F4
In Toad. Toad bietet eine ausführliche Beschreibung des Objekts, während Developer auf der Registerkarte Details eine Zeile mit TABLE_NAME
Oder MVIEW_NAME
Enthält, die Ihnen zeigt, was es ist.
Sobald Sie wissen, was es ist, wird es einfacher, zu wissen, wie man es fallen lässt.
Möglicherweise können Sie das Objekt nicht in den ALL_% -Tabellen sehen, wenn Sie keine Berechtigungen für das Objekt selbst haben. Überprüfen Sie daher die Tabelle DBA_OBJECTS (dazu benötigen Sie Zuschüsse/einen entsprechend gewährten Benutzer):
select *
from DBA_OBJECTS
where object_name = 'COT_NTN_PI_V';
Wenn dies keine Ausgabe erzeugt, können Sie die Oracle-Datenwörterbuchtabellen mit dieser Abfrage einchecken:
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';