ITPub博客

首页 > 数据库 > Oracle > 2011-10-13 10G新特性DML ERROR LOG

2011-10-13 10G新特性DML ERROR LOG

Oracle 作者:hanaka 时间:2019-05-05 16:31:14 0 删除 编辑

http://www.itpub.net/thread-1499223-4-1.html

40楼


我执行下列语句:

CREATE TABLE plch_employees
(
   employee_id   INTEGER
, last_name     VARCHAR2 (100)
, salary        NUMBER (4)
, clob_value    VARCHAR2(100)
)
/
 
BEGIN
   INSERT INTO plch_employees
        VALUES (100, 'Zuckerberg', 500, 'Went to Harvard');
   INSERT INTO plch_employees
        VALUES (200, 'Ellison', 10, 'Did not go to Harvard');
   INSERT INTO plch_employees
        VALUES (300, 'Gates', 45, 'Dropped out of Harvard');
   COMMIT;
END;
/
 
BEGIN
   DBMS_ERRLOG.create_error_log (dml_table_name => 'PLCH_EMPLOYEES');
END;
/

如果我执行下列语句块给尽可能多的员工大幅度加薪,下列的选项中哪些描述了我将在屏幕上看到的信息?

BEGIN
       UPDATE plch_employees
          SET salary = salary * 200
   LOG ERRORS REJECT LIMIT UNLIMITED;
   DBMS_OUTPUT.put_line (SQL%ROWCOUNT);
END;
/
(A)
2
(B)
下列异常信息未被处理并传播出来:
ORA-00942: table or view does not exist
(C)
0


我自己试验的答案A,但是45楼的答案为B


在执行用户下会自动生成一个ERR$_PLCH_EMPLOYEES表

SQL> desc ERR$_PLCH_EMPLOYEES
Name            Type           Nullable Default Comments 
--------------- -------------- -------- ------- -------- 
ORA_ERR_NUMBER$ NUMBER         Y                         
ORA_ERR_MESG$   VARCHAR2(2000) Y                         
ORA_ERR_ROWID$  UROWID(4000)   Y                         
ORA_ERR_OPTYP$  VARCHAR2(2)    Y                         
ORA_ERR_TAG$    VARCHAR2(2000) Y                         
EMPLOYEE_ID     VARCHAR2(4000) Y                         
LAST_NAME       VARCHAR2(4000) Y                         
SALARY          VARCHAR2(4000) Y                         
CLOB_VALUE      VARCHAR2(4000) Y                         
SQL>



小插曲

原题clob_value为CLOB,DBMS_ERRLOG报错

CREATE TABLE plch_employees
(
   employee_id   INTEGER
, last_name     VARCHAR2 (100)
, salary        NUMBER (4)
, clob_value    CLOB
)
/
SQL> BEGIN
  2     DBMS_ERRLOG.create_error_log (dml_table_name => 'PLCH_EMPLOYEES');
  3  END;
  4  /
BEGIN
   DBMS_ERRLOG.create_error_log (dml_table_name => 'PLCH_EMPLOYEES');
END;
ORA-20069: Unsupported column type(s) found: CLOB_VALUE
ORA-06512: 在 "SYS.DBMS_ERRLOG", line 314
ORA-06512: 在 line 2
SQL>


知识点后补

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/680385/viewspace-2643311/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-07-15

  • 博文量
    47
  • 访问量
    29235