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を動的に実行する必要がありますが、これは本当にやりたくないことです。

インデックスを再構築する必要がある場合は、その場でではなく、標準のシステム メンテナンスの一環として行う必要があります。その場でインデックスを再構築する必要がある場合は、インデックスを使用できなくする何かを行っています。これが何であれしないでください。症状ではなく、問題の根本原因を修正します。

実際にあなたの質問に答えるには (もう一度これをしないでください)、PL/SQL で DDL を実行するために動的 DDL を使用する必要があります。EXECUTE IMMEDIATEを使用する

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