Put insert statement into its own block
SQL> SQL> SQL> CREATE TABLE lecturer ( 2 id NUMBER(5) PRIMARY KEY, 3 first_name VARCHAR2(20), 4 last_name VARCHAR2(20), 5 major VARCHAR2(30), 6 current_credits NUMBER(3) 7 ); Table created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10001, 'Scott', 'Lawson','Computer Science', 11); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major, current_credits) 2 VALUES (10002, 'Mar', 'Wells','History', 4); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10003, 'Jone', 'Bliss','Computer Science', 8); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10004, 'Man', 'Kyte','Economics', 8); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10005, 'Pat', 'Poll','History', 4); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10006, 'Tim', 'Viper','History', 4); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10007, 'Barbara', 'Blues','Economics', 7); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10008, 'David', 'Large','Music', 4); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10009, 'Chris', 'Elegant','Nutrition', 8); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10010, 'Rose', 'Bond','Music', 7); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10011, 'Rita', 'Johnson','Nutrition', 8); 1 row created. SQL> SQL> INSERT INTO lecturer (id, first_name, last_name, major,current_credits) 2 VALUES (10012, 'Sharon', 'Clear','Computer Science', 3); 1 row created. SQL> SQL> select * from lecturer; ID FIRST_NAME LAST_NAME MAJOR CURRENT_CREDITS -------- -------------------- -------------------- ------------------------------ --------------- ######## Scott Lawson Computer Science 11.00 ######## Mar Wells History 4.00 ######## Jone Bliss Computer Science 8.00 ######## Man Kyte Economics 8.00 ######## Pat Poll History 4.00 ######## Tim Viper History 4.00 ######## Barbara Blues Economics 7.00 ######## David Large Music 4.00 ######## Chris Elegant Nutrition 8.00 ######## Rose Bond Music 7.00 ######## Rita Johnson Nutrition 8.00 ID FIRST_NAME LAST_NAME MAJOR CURRENT_CREDITS -------- -------------------- -------------------- ------------------------------ --------------- ######## Sharon Clear Computer Science 3.00 12 rows selected. SQL> SQL> CREATE TABLE myLogTable ( 2 code NUMBER, 3 message VARCHAR2(200), 4 info VARCHAR2(100) 5 ); Table created. SQL> SQL> SQL> SQL> SQL> DECLARE 2 myLecturerID NUMBER(5) := 10000; 3 myFirstName VARCHAR2(20); 4 5 BEGIN 6 SELECT first_name 7 INTO myFirstName 8 FROM lecturer 9 WHERE id = myLecturerID; 10 BEGIN 11 INSERT INTO myLogTable (info) 12 VALUES ('Hello from a nested block!'); 13 END; 14 EXCEPTION 15 WHEN NO_DATA_FOUND THEN 16 BEGIN 17 INSERT INTO myLogTable (info) 18 VALUES ('Student 10,000 does not exist!'); 19 EXCEPTION 20 WHEN OTHERS THEN 21 DBMS_OUTPUT.PUT_LINE('Error inserting into myLogTable!'); 22 END; 23 END; 24 / PL/SQL procedure successfully completed. SQL> SQL> select * from lecturer; ID FIRST_NAME LAST_NAME MAJOR CURRENT_CREDITS -------- -------------------- -------------------- ------------------------------ --------------- ######## Scott Lawson Computer Science 11.00 ######## Mar Wells History 4.00 ######## Jone Bliss Computer Science 8.00 ######## Man Kyte Economics 8.00 ######## Pat Poll History 4.00 ######## Tim Viper History 4.00 ######## Barbara Blues Economics 7.00 ######## David Large Music 4.00 ######## Chris Elegant Nutrition 8.00 ######## Rose Bond Music 7.00 ######## Rita Johnson Nutrition 8.00 ID FIRST_NAME LAST_NAME MAJOR CURRENT_CREDITS -------- -------------------- -------------------- ------------------------------ --------------- ######## Sharon Clear Computer Science 3.00 12 rows selected. SQL> SQL> select * from myLogTable; CODE MESSAGE -------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------- INFO ---------------------------------------------------------------------------------------------------- Student 10,000 does not exist! SQL> SQL> drop table lecturer; Table dropped. SQL> SQL> drop table myLogTable; Table dropped. SQL>
1. | The INSERT statement can be used in a PL/SQL program | ||
2. | Sequences can also be accessed directly from an INSERT statement in a PL/SQL program | ||
3. | INSERT statements with variable |