it-swarm-eu.dev

Jak najdu objekt, který zřejmě neexistuje v tabulce objektů?

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?

11
BON

Typy objektů ve stejném jmenném prostoru jako tabulka jsou:

  • Samostatné postupy
  • Samostatné uložené funkce
  • Balíčky
  • Uživatelem definované typy
  • Sekvence
  • Zobrazení
  • Soukromá synonyma
  • Materializované pohledy

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.

11
John Doyle

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';
4
Philᵀᴹ