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

来源:这里教程网 时间:2026-03-03 13:36:35 作者:

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>

知识点后补

相关推荐