oracle - 如果存在则删除索引...如果存在则创建

标签 oracle oracle11g

在删除和创建索引之前,我想检查索引是否存在。

用简单的 1-2 行语句可以实现这一点吗?

最佳答案

您当然可以查询dba_indexes/all_indexes/user_indexes来查看索引是否存在。假设您想要查找特定的索引名称(您也可以匹配列集)

select count(*)
  into l_cnt
  from all_indexes
 where owner = <<owner of index>>
   and index_name = <<name of index>>

if( l_cnt > 0 )
then
  <<index exists>>
else
  <<index doesn't exist>>
end if;

当然,您也可以简单地删除索引并捕获它不存在的异常。

关于oracle - 如果存在则删除索引...如果存在则创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19784377/

相关文章:

mysql - 如何选择 SQL 数据库表中的第 n 行?

java - 如何在运行时解决 "java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver"?

sql - 基础表的特权是否自动传递给在该表上创建的任何 View ?

sql - 更改单个查询的 NLS_SORT

oracle - 脚本执行时出现 sql 错误。在创建存储库之前尝试删除存储库

java - 在 Java 中创建 Base64 编码的 SHA-256 哈希

oracle - 对于超过 32512 个字符的字符串,PLSQL Developer 中的 dbms_output.put_line 失败并出现 ORA-06502

sql - 我不明白排序规则? (Mysql、RDBMS、字符集)

python - cx_Oracle 插入 <bytes> 类型对象的十六进制 ASCII 表示 Python 3

java - 单例模式在有一些更新时会产生一些问题