objects 테이블에 존재하지 않는 것으로 보이는 오브젝트를 어떻게 찾습니까?


11

라는 객체가 cot_ntn_pi_v있습니다. 나는 이것이 동의어라고 들었다. all_synonyms 테이블에 나타나지 않습니다. 뷰 또는 테이블처럼 보이지만 모든 객체 테이블에서 찾을 수 없습니다. 선택할 수는 있지만 '존재하지 않음'으로 삭제할 수 없으며 '이름이 이미 다른 개체에서 사용되었습니다'와 같은 이름으로 새 테이블을 만들 수 없습니다.

내가 화를 내거나 정말 바보 같은 일을하고 있습니까?


1
항목에 대한 권한이 없으면 ALL_ * 테이블에 표시되지 않을 수 있습니다. 관리 로그인이 필요할 수 있으며 DBA_ * 데이터 사전 테이블을보십시오.
ConcernedOfTunbridgeWells

답변:


11

테이블과 동일한 네임 스페이스의 개체 유형은 다음과 같습니다.

  • 독립형 절차
  • 독립형 저장 기능
  • 패키지
  • 사용자 정의 유형
  • 시퀀스
  • 견해
  • 비공개 동의어
  • 구체화 된 뷰

따라서 아마도 그러한 유형 중 하나 일 것입니다. 그중에서 선택할 수 있으면 처음 5 개를 배제하여 테이블, 뷰, 개인 동의어 또는 구체화 된 뷰로 남겨 둡니다.

all_objects등 을 검색했을 때 대문자를 사용 했습니까? 예를 들어

select *
  from ALL_OBJECTS
 where OBJECT_NAME = 'COT_NTN_PI_V'; 

SQL Developer 또는 Toad와 같은 도구를 사용하면 개체를 설명 할 수 있습니다. 도구에서 이름을 강조 표시하고 Shift-F4Developer 또는 F4Toad에서 적중하십시오 . Toad는 객체에 대한 많은 설명을 제공하는 반면, 개발자의 세부 정보 탭에는 행이 TABLE_NAME있거나 그 MVIEW_NAME안에 행 이 표시됩니다.

일단 그것이 무엇인지 알게되면 그것을 떨어 뜨리는 방법을 더 쉽게 알 수 있습니다.


예, SQL 개발자와 Shift + F4를 사용하여 필요한 것을 찾을 수있었습니다! 감사합니다 :)
BON

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';
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.