0

如何在 Oracle 中创建触发器来重建索引?

create or replace  
 TRIGGER BI_NAME_SEARCH AFTER INSERT OR UPDATE ON PROFILE
FOR EACH ROW  
BEGIN  
   ALTER INDEX MYINDEX REBUILD;  
END;

这是行不通的。

4

1 回答 1

4

你永远不想这样做:

  • 您需要在系统表上放置一个触发器,而您真的不想这样做。
  • 然后,您将需要在触发器中动态执行 DDL,而您真的不想这样做。

如果您需要重建索引,这应该作为标准系统维护的一部分来完成,而不是即时进行。如果您需要即时重建索引,那么您正在做一些使索引无法使用的事情。不要做任何事情。解决问题的根本原因而不是症状。

要真正回答您的问题(再次不要这样做),您需要使用动态 DDL 以便在 PL/SQL 中执行 DDL。使用立即执行

execute immediate 'alter index myindex rebuild';
于 2013-06-24T11:18:40.257 回答