如何找到对象表中似乎不存在的对象?


11

我有一个名为的对象cot_ntn_pi_v。有人告诉我这是一个同义词。它不会出现在all_synonyms表中。它看起来像一个视图或表,但我不能在所有对象表中找到它。我可以从中选择,但是不能删除它,因为它“不存在”,并且无法创建一个新表,其名称与“该名称已被另一个对象使用”相同。

我会生气还是做一些愚蠢的事情?


1
如果您对此项目没有权限,则该项目可能不会显示在ALL_ *表中。您可能需要管理登录并查看DBA_ *数据字典表。
ConcernedOfTunbridgeWells

Answers:


11

与表相同的名称空间中的对象类型为:

  • 独立程序
  • 独立存储功能
  • 配套
  • 用户定义类型
  • 顺序
  • 观看次数
  • 私人同义词
  • 物化视图

因此,它可能是这些类型之一。如果可以从中选择,则它将前五个排除在外,使其成为表,视图,专用同义词或实例化视图。

当您搜索all_objects等等时,您是否使用大写字母?例如,

select *
  from ALL_OBJECTS
 where OBJECT_NAME = 'COT_NTN_PI_V'; 

如果使用SQL Developer或Toad之类的工具,则可以让它为您描述对象。突出显示该工具中的名称,然后Shift-F4在Developer或F4Toad中单击。Toad提供了有关该对象的大量描述,而Developer的Details选项卡中将在其中包含一行,TABLE_NAMEMVIEW_NAME向其显示内容。

一旦知道了它是什么,就可以更轻松地知道如何删除它。


是的,使用sql developer和shift + f4就能找到我所需要的!谢谢:)
2012年

4

如果您对对象本身没有任何授权,则可能无法在ALL_%表中看到该对象,因此请检查DBA_OBJECTS表(您需要授权/适当授权的用户才能执行此操作):

select * 
from DBA_OBJECTS
where object_name = 'COT_NTN_PI_V';

如果没有任何输出,则可以使用此查询检入原始Oracle数据字典表:

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';
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.