【发布时间】:2021-09-07 23:41:54
【问题描述】:
我想知道如何重建特定表的索引。
SELECT 'ALTER INDEX '||OWNER||'.'||INDEX_NAME||' REBUILD;'
FROM DBA_INDEXES
WHERE TABLE_NAME = 'JR_SETTING_D';
运行此代码后,我尝试在表中插入值,但它一直告诉我
ORA-01502: 索引或该索引的分区处于可用状态提示
我正在寻找任何方法来简单地重建我在查询的 where 语句中提到的表的索引。
【问题讨论】:
-
这是分区表吗?
-
After running this code,您的意思是您已经运行了显示的确切 SQL 语句,没有别的?这不会重建索引,它只会生成用于重建索引的命令。 -
@DaveCosta 感谢您的建议。我已经设法通过for循环做到了。 ` BEGIN FOR I IN (SELECT OWNER, INDEX_NAME FROM all_indexes WHERE table_name = UPPER('JR_SETTING_D') ) 循环开始立即执行'ALTER INDEX' ||我.OWNER ||'.'|| I.INDEX_NAME || '重建' ;结尾;结束循环;结尾; `
标签: oracle indexing alter rebuild