如何在Oracle中创建触发器来重建索引?
create or replace
TRIGGER BI_NAME_SEARCH AFTER INSERT OR UPDATE ON PROFILE
FOR EACH ROW
BEGIN
ALTER INDEX MYINDEX REBUILD;
END;
这不起作用。
答案 0 :(得分:4)
你永远不想这样做:
如果您需要重建索引,这应该作为标准系统维护的一部分完成,而不是动态。如果您需要动态重建索引,那么您正在做一些使索引无法使用的事情。不要做任何事情。解决问题的根本原因而不是症状。
要实际回答您的问题(再次不要这样做),您需要使用动态DDL才能在PL / SQL中执行DDL。使用EXECUTE IMMEDIATE
execute immediate 'alter index myindex rebuild';