3,494
社区成员




--创建用来记录错误的临时表
create global temporary table ZT_ERRLOGS$
(
ora_err_number$ NUMBER,
ora_err_mesg$ VARCHAR2(2000),
ora_err_rowid$ ROWID,
ora_err_optyp$ VARCHAR2(2),
ora_err_tag$ VARCHAR2(2000)
)
on commit preserve rows;
--创建测试表
create table t(x number(10));
--开始测试
BEGIN
FOR i IN 1 .. 100 LOOP
INSERT INTO t
VALUES
(dbms_random.value(1, 1e15)) LOG ERRORS INTO ZT_ERRLOGS$
(i) REJECT LIMIT 1000000;
END LOOP;
END;
/
--查看错误信息,可省略
SQL> SELECT * FROM ZT_ERRLOGS$ where rownum<10;
....
1438 ORA-01438: 值大于为此列指定的允许精度 I 1
1438 ORA-01438: 值大于为此列指定的允许精度 I 2
1438 ORA-01438: 值大于为此列指定的允许精度 I 3
1438 ORA-01438: 值大于为此列指定的允许精度 I 4
......