oracle - 如何在Oracle中检查索引

标签 oracle metadata

我正在为依赖Oracle数据库的产品编写架构升级脚本。在一个区域中,我需要在表上创建索引-如果该索引尚不存在。有没有一种简便的方法来检查Oracle脚本中我知道名称的索引的存在?

在SQL Server中将类似于以下内容:
如果不存在(SELECT * FROM SYSINDEXES NAME ='myIndex')
//然后创建我的myIndex

最佳答案

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

sqlplus不支持IF ...,因此,您必须使用匿名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以大写形式存储未加引号的对象名称。

关于oracle - 如何在Oracle中检查索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/640390/

相关文章:

oracle - Bea Weblogic 工作文件夹在哪里

sql-server - 为前 N 个不同的子表行选择所有行

c# - 使用 iTextSharp 读取/修改 PDF 元数据

sql - 如何在不获取重复列名的情况下选择 SQL 连接中的所有字段?

java - 如何启用oracle jdbc日志记录?

R Shiny App 在 R Shiny Pro 中与数据库断开连接

ios - 有没有办法在 iOS 中获取图像文件的元数据?

metadata - OneDrive Facet 架构注册(用于元数据)

image - 通过 http 加载的图像的大小(宽度、高度)

architecture - 在数据仓库中发布数据