如何检查Oracle中的索引

前端之家收集整理的这篇文章主要介绍了如何检查Oracle中的索引前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为依赖于Oracle数据库的产品编写架构升级脚本.在一个区域中,我需要在表上创建一个索引 – 如果该索引不存在.有没有一个简单的方法来检查我知道Oracle脚本中的名称的索引的存在?

这将与sql Server中的类似:
IF NOT EXISTS(SELECT * FROM SYSINDEXES WHERE NAME =’myIndex’)
//然后创建myIndex

从user_indexes中选择count(*),其中index_name =’myIndex’

sqlplus不支持IF …,但是,您必须使用匿名PL / sql块,这意味着EXECUTE IMMEDIATE可以执行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将非引号对象名称全部存储在大写中.

猜你在找的Oracle相关文章