SQL> CREATE TABLE SRC (
2 ID NUMBER,
3 NUM NUMBER
4 );
表が作成されました。
SQL> CREATE TABLE DEST (
2 ID NUMBER PRIMARY KEY, /* プライマリキー */
3 NUM NUMBER
4 );
表が作成されました。
SQL> INSERT INTO SRC VALUES ( 1, 100);
1行が作成されました。
SQL> INSERT INTO SRC VALUES ( 1, 200);
1行が作成されました。
SQL> INSERT INTO SRC VALUES ( 2, 300);
1行が作成されました。
SQL> INSERT INTO DEST SELECT * FROM SRC;
INSERT INTO DEST SELECT * FROM SRC
*
行1でエラーが発生しました。:
ORA-00001: 一意制約(RIVUS.SYS_C0012335)に反しています
DBMS_ERRLOG パッケージと LOG ERRORS 句を使用する
SQL> exec dbms_errlog.create_error_log('dest');
PL/SQLプロシージャが正常に完了しました。
SQL> desc err$_dest
名前 NULL? 型
----------------------------------------- -------- ----------------------------
ORA_ERR_NUMBER$ NUMBER
ORA_ERR_MESG$ VARCHAR2(2000)
ORA_ERR_ROWID$ ROWID
ORA_ERR_OPTYP$ VARCHAR2(2)
ORA_ERR_TAG$ VARCHAR2(2000)
ID VARCHAR2(4000)
NUM VARCHAR2(4000)
select
c.table_name, c.constraint_name, c.status cc_status,
cc.position, cc.column_name,
ix.index_name, ix.uniqueness, ix.tablespace_name, ix.visibility, ix.status
from user_indexes ix,
user_constraints c, user_cons_columns cc
where
ix.table_name in ('MY_TABLE') and c.constraint_type = 'P'
and ix.index_name = c.index_name and c.constraint_name = cc.constraint_name
order by cc.position;