Mám objekt s názvem cot_ntn_pi_v
. Bylo mi řečeno, že to bylo synonymum. Nezobrazuje se v tabulce all_synonyms. Vypadá to jako pohled nebo tabulka, ale nemohu jej najít v tabulce všech objektů. Můžu si z ní vybrat, ale nemohu ji zrušit, protože „neexistuje“ a nemůžu vytvořit novou tabulku se stejným názvem jako „jméno již používá jiný objekt.“
Zlobím se nebo dělám něco opravdu hloupého?
Typy objektů ve stejném jmenném prostoru jako tabulka jsou:
Proto je to pravděpodobně jeden z těchto typů. Pokud si z ní můžete vybrat, vyloučí prvních pět, ať už jde o tabulku, pohled, soukromé synonymum nebo materializované zobrazení.
Když jste hledali v all_objects
atd. použili jste velká písmena? Například,
select *
from ALL_OBJECTS
where OBJECT_NAME = 'COT_NTN_PI_V';
Pokud používáte nějaký nástroj, jako je SQL Developer nebo ropucha, můžete jej nechat, aby popisoval objekt pro vás. Zvýrazněte název v nástroji a stiskněte Shift-F4
ve vývojáři nebo F4
in Toad. Ropucha poskytuje hodně popisu objektu, zatímco vývojář na kartě Podrobnosti bude mít řádek s TABLE_NAME
nebo MVIEW_NAME
v tom a to vám ukáže, co to je.
Jakmile víte, co to je, usnadní vám to vědět, jak to upustit.
Pravděpodobně nebudete moci vidět objekt v tabulkách ALL_%, pokud nemáte žádné granty na samotný objekt, proto zkontrolujte v tabulce DBA_OBJECTS (budete to muset udělit/udělit vhodně udělenému uživateli):
select *
from DBA_OBJECTS
where object_name = 'COT_NTN_PI_V';
Pokud to nevytvoří žádný výstup, můžete zkontrolovat v tabulkách surového datového slovníku Oracle pomocí tohoto dotazu:
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';