programing

Oracle에서 인덱스를 확인하는 방법

css3 2023. 6. 29. 20:18

Oracle에서 인덱스를 확인하는 방법

Oracle 데이터베이스에 의존하는 제품의 스키마 업그레이드 스크립트를 작성하고 있습니다.한 영역에서 테이블에 인덱스를 작성해야 합니다(인덱스가 아직 존재하지 않는 경우).오라클 스크립트에서 이름을 알고 있는 인덱스가 있는지 쉽게 확인할 수 있는 방법이 있습니까?

SQL Server의 경우와 유사합니다. 존재하지 않는 경우(SELECT * FROM SYSINDES WHERE NAME = 'myIndex') // 그런 다음 myIndex를 만듭니다.

user_incount()에서 count()를 선택합니다. 여기서 index_name = 'myIndex'

그러나 sqlplus는...의 경우 지원하지 않으므로 익명 PL/SQL 블록을 사용해야 합니다. 즉, DDL을 수행하려면 즉시 실행해야 합니다.

DECLARE
    i INTEGER;
BEGIN
    SELECT COUNT(*) INTO i FROM user_indexes WHERE index_name = 'MYINDEX';
    IF i = 0 THEN
        EXECUTE IMMEDIATE 'CREATE INDEX myIndex ...';
    END IF;
END;
/

편집: 지적된 대로 Oracle은 따옴표로 묶이지 않은 개체 이름을 모두 대문자로 저장합니다.

언급URL : https://stackoverflow.com/questions/640390/how-to-check-for-an-index-in-oracle