Chapter 11. DML and Transaction Management

Beginner

Q:

11-1.

DELETE, UPDATE, and INSERT. You can execute any of these statements directly in a PL/SQL block. Here is an example of a block that removes all the rows from the employee table:

BEGIN
   DELETE FROM employee;
END;
/

Q:

11-2.

Statements are:

  1. False. DML changes made in a PL/SQL block are saved only when a COMMIT is executed in that session.

  2. True. An exception doesn’t cause a rollback of changes made unless that exception propagates unhandled out of the outermost block. Then the host environment usually (but not necessarily) issues a ROLLBACK.

  3. False. The INSERT…INTO…SELECT FROM statement is valid in PL/SQL, so you can insert multiple rows with a single INSERT statement.

Q:

11-3.

All the native DML statements in PL/SQL are implicit cursors. This means that the underlying SQL engine automatically and implicitly opens, executes, and closes the cursor containing your DML statement.

Q:

11-4.

You can obtain this information by examining the value of the SQL%ROWCOUNT attribute. The following block illustrates this technique:

BEGIN
   DELETE FROM employee WHERE salary > 10000;
   DBMS_OUTPUT.PUT_LINE (
      'We can now hire ' || SQL%ROWCOUNT ||
      ' cheap, young college graduates!');
END;

Q:

11-5.

To save changes, issue a COMMIT command. You can do this with either of the following statements:

COMMIT;
DBMS_STANDARD.COMMIT;

Q:

11-6.

To erase changes in your session, use the ROLLBACK command. You can do this as follows:

ROLLBACK;
DBMS_STANDARD.ROLLBACK;

Q:

11-7.

The following ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.