User A executes the following command to update the TRANS table:
SQL> UPDATE B.trans SET tr_amt = tr_amt + 500 WHERE c_code = 'C005';
Before user A issues a COMMIT or ROLLBACK command, user B executes the following command on the TRANS table:
SQL> ALTER TABLE trans MODIFY (tr_type VARCHAR2(3));
What would happen in this scenario?
A. The ALTER TABLE command modifies the column successfully.
B. The DDL operation gets higher priority and transaction for user A is rolled back.
C. The ALTER TABLE command waits indefinitely until user A ends the transaction.
D. The ALTER TABLE command fails after waiting for 60 seconds due to the resource being busy.
答案:(D)
解析:
--在一个会话中创建和修改表 scott@TESTDB11>create table emp1 as select * from emp; Table created. scott@TESTDB11>update emp1 set sal = sal * 2 where empno = 7788; 1 row updated. --D. 在另一个会话中修改表的定义,这个错误是立即返回的,本答案稍有瑕疵. scott@TESTDB11>alter table emp1 modify (ename varchar2(30)); alter table emp1 modify (ename varchar2(30)) * ERROR at line 1: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1180139/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/17013648/viewspace-1180139/