SQL> DROP TABLE trans;
While the drop table operation is in progress, user B executes the following command on the same table:
SQL> DELETE FROM trans WHERE tr_type='SL';
Which statement is true regarding the DELETE command?
A.It fails with a "Resource Busy" error.
B.It deletes the rows successfully because the table is locked in SHARE mode.
C.It fails to delete the records because the table is locked in EXCLUSIVE mode.
D.It deletes the rows successfully because the table is locked in SHARE ROW EXCLUSIVE mode.
Answer: C
当执行删除表,增加字段等ddl操作时,不能对该表执行dml语句
http://docs.oracle.com/cd/E11882_01/server.112/e40540/consist.htm#CNCPT1352
Exclusive DDL Locks
An exclusive DDL lock prevents other sessions from obtaining a DDL or DML lock. Most DDL operations, except for those described in "Share DDL Locks", require exclusive DDL locks for a resource to prevent destructive interference with other DDL operations that might modify or reference the same schema object. For example, DROP TABLE
is not allowed to drop a table whileALTER TABLE
is adding a column to it, and vice versa.
Exclusive DDL locks last for the duration of DDL statement execution and automatic commit. During the acquisition of an exclusive DDL lock, if another DDL lock is held on the schema object by another operation, then the acquisition waits until the older DDL lock is released and then proceeds.
Share DDL Locks
A share DDL lock for a resource prevents destructive interference with conflicting DDL operations, but allows data concurrency for similar DDL operations.
For example, when a CREATE
PROCEDURE
statement is run, the containing transaction acquires share DDL locks for all referenced tables. Other transactions can concurrently create procedures that reference the same tables and acquire concurrent share DDL locks on the same tables, but no transaction can acquire an exclusive DDL lock on any referenced table.
A share DDL lock lasts for the duration of DDL statement execution and automatic commit. Thus, a transaction holding a share DDL lock is guaranteed that the definition of the referenced schema object remains constant during the transaction.