Oracle   EXCEPTIONS表の使用
  (not ever)


EXCEPTIONS表の使用

一意制約などを作ろうとしたときに、どれかの行が既に制約違反であるという邪魔をして、 制約が作成できない場合、 その邪魔をしている行を検出するのにEXCEPTIONS表が便利です。

まず、その制約を作ろうとする表を持っているユーザでログオンし、 $ORACLE_HOME/rdbms/admin/utlexcpt.sql を実行します。するとEXCEPTIONS表がそのユーザに作られます。 この名前はRENAME TOで改名しても構いません。

「EXCEPTIONS INTO {表名}」句をつけて、ALTER TABLE ADD CONSTRAINT 文を実行します。

ALTER TABLE EUC_DATA_ARCHIVE
  ADD CONSTRAINT EUC_DATA_ARCHIVE_U1
  PRIMARY KEY(ORDER_ID)
  USING INDEX TABLESPACE EUC_IDX STORAGE(INITIAL 40M NEXT 15M)
  EXCEPTIONS INTO EXCEPTIONS;

EXCEPTIONS表に問題になった行のROWIDを含む行が作られます。 この内容は不要になったら自由にDELETEできます。

  もくじ
Oracle   (C) 2002 Project Radkraft (2002/11/28 - (not ever) / MISUMI URANO)