라는 객체가 cot_ntn_pi_v
있습니다. 나는 이것이 동의어라고 들었다. all_synonyms 테이블에 나타나지 않습니다. 뷰 또는 테이블처럼 보이지만 모든 객체 테이블에서 찾을 수 없습니다. 선택할 수는 있지만 '존재하지 않음'으로 삭제할 수 없으며 '이름이 이미 다른 개체에서 사용되었습니다'와 같은 이름으로 새 테이블을 만들 수 없습니다.
내가 화를 내거나 정말 바보 같은 일을하고 있습니까?
라는 객체가 cot_ntn_pi_v
있습니다. 나는 이것이 동의어라고 들었다. all_synonyms 테이블에 나타나지 않습니다. 뷰 또는 테이블처럼 보이지만 모든 객체 테이블에서 찾을 수 없습니다. 선택할 수는 있지만 '존재하지 않음'으로 삭제할 수 없으며 '이름이 이미 다른 개체에서 사용되었습니다'와 같은 이름으로 새 테이블을 만들 수 없습니다.
내가 화를 내거나 정말 바보 같은 일을하고 있습니까?
답변:
테이블과 동일한 네임 스페이스의 개체 유형은 다음과 같습니다.
따라서 아마도 그러한 유형 중 하나 일 것입니다. 그중에서 선택할 수 있으면 처음 5 개를 배제하여 테이블, 뷰, 개인 동의어 또는 구체화 된 뷰로 남겨 둡니다.
all_objects
등 을 검색했을 때 대문자를 사용 했습니까? 예를 들어
select *
from ALL_OBJECTS
where OBJECT_NAME = 'COT_NTN_PI_V';
SQL Developer 또는 Toad와 같은 도구를 사용하면 개체를 설명 할 수 있습니다. 도구에서 이름을 강조 표시하고 Shift-F4
Developer 또는 F4
Toad에서 적중하십시오 . Toad는 객체에 대한 많은 설명을 제공하는 반면, 개발자의 세부 정보 탭에는 행이 TABLE_NAME
있거나 그 MVIEW_NAME
안에 행 이 표시됩니다.
일단 그것이 무엇인지 알게되면 그것을 떨어 뜨리는 방법을 더 쉽게 알 수 있습니다.
오브젝트 자체에 권한이없는 경우 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';