Oracle
 sql >> Database >  >> RDS >> Oracle

Come verificare la presenza di un indice in Oracle

seleziona count(*) da user_indexes dove index_name ='myIndex'

sqlplus non supporterà IF..., quindi dovrai usare blocchi PL/SQL anonimi, il che significa ESEGUIRE IMMEDIATO per eseguire 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;
/

Modifica:come sottolineato, Oracle memorizza i nomi degli oggetti senza virgolette in tutto maiuscolo.