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>
知识点后补
