Set Up Table
CREATE TABLE plch_flowers
(
id INTEGER PRIMARY KEY,
nm VARCHAR2 (100) UNIQUE
)
Table created.
BEGIN
INSERT INTO plch_flowers
VALUES (1, 'Orchid');
INSERT INTO plch_flowers
VALUES (2, 'Rose');
COMMIT;
END;
1 row(s) inserted.
DECLARE
l_id INTEGER;
BEGIN
SELECT id
INTO l_id
FROM plch_flowers
WHERE nm = 'Orchid';
DBMS_OUTPUT.put_line ('RC=' || SQL%ROWCOUNT);
END;
RC=1
ROLLBACK
Statement processed.
DECLARE
l_id INTEGER;
BEGIN
SELECT id INTO l_id FROM plch_flowers;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ('RC=' || SQL%ROWCOUNT);
END;
RC=1
ROLLBACK
Statement processed.
BEGIN
INSERT INTO plch_flowers
SELECT id * 3, UPPER (nm) FROM plch_flowers;
DBMS_OUTPUT.put_line ('RC=' || SQL%ROWCOUNT);
END;
RC=2
ROLLBACK
Statement processed.
DECLARE
l_id INTEGER;
BEGIN
INSERT INTO plch_flowers
VALUES (3, 'Tulip');
SAVEPOINT inserted_row;
INSERT INTO plch_flowers
VALUES (3, 'Lotus');
EXCEPTION
WHEN OTHERS
THEN
ROLLBACK TO inserted_row;
DBMS_OUTPUT.put_line ('RC=' || SQL%ROWCOUNT);
END;
RC=0
ROLLBACK
Statement processed.
DECLARE
l_id INTEGER;
PROCEDURE insert_and_save
IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO plch_flowers
SELECT id * 3, UPPER (nm) FROM plch_flowers;
COMMIT;
END;
BEGIN
INSERT INTO plch_flowers
VALUES (10, 'Ambrosia');
insert_and_save;
DBMS_OUTPUT.put_line ('RC=' || SQL%ROWCOUNT);
END;
RC=0