Implicit Cursor: No rows found : Implicit Cursor « Cursor « Oracle PL/SQL Tutorial






SQL>
SQL> CREATE TABLE employee
  2  (employee_id         NUMBER(7),
  3   last_name           VARCHAR2(25),
  4   first_name          VARCHAR2(25),
  5   userid              VARCHAR2(8),
  6   start_date          DATE,
  7   comments            VARCHAR2(255),
  8   manager_id          NUMBER(7),
  9   title               VARCHAR2(25),
 10   department_id       NUMBER(7),
 11   salary              NUMBER(11, 2),
 12   commission_pct      NUMBER(4, 2)
 13  );

Table created.

SQL>
SQL> INSERT INTO employee VALUES (1, 'V', 'Ben', 'cv',to_date('03-MAR-90 8:30', 'dd-mon-yy hh24:mi'),NULL, NULL, 'PRESIDENT', 50, 2500, NULL);

1 row created.

SQL> INSERT INTO employee VALUES (2, 'N', 'Haidy', 'ln', '08-MAR-90', NULL,1, 'VP, OPERATIONS', 41, 1450, NULL);

1 row created.

SQL> INSERT INTO employee VALUES (3, 'N', 'Molly', 'mn', '17-JUN-91',NULL, 1, 'VP, SALES', 31, 1400, NULL);

1 row created.

SQL> INSERT INTO employee VALUES (4, 'S', 'Mark', 'mq', '07-APR-90',NULL, 1, 'VP, FINANCE', 10, 1450, NULL);

1 row created.

SQL> INSERT INTO employee VALUES (5, 'R', 'AUDRY', 'ar', '04-MAR-90',NULL, 1, 'VP, ADMINISTRATION', 50, 1550, NULL);

1 row created.

SQL> INSERT INTO employee VALUES (6, 'U', 'MOLLY', 'mu', '18-JAN-91',NULL, 2, 'WAREHOUSE MANAGER', 41, 1200, NULL);

1 row created.

SQL> INSERT INTO employee VALUES (7, 'M', 'ROBERTA', 'rm', '14-MAY-90',NULL, 2, 'WAREHOUSE MANAGER', 41, 1250, NULL);

1 row created.

SQL> INSERT INTO employee VALUES (8, 'B', 'BEN', 'ry', '07-APR-90', NULL, 2,'WAREHOUSE MANAGER', 41, 1100, NULL);

1 row created.

SQL> INSERT INTO employee VALUES (9, 'C', 'Jane', 'ac', '09-FEB-92',NULL, 2, 'WAREHOUSE MANAGER', 41, 1300, NULL);

1 row created.

SQL> INSERT INTO employee VALUES (10, 'H', 'Mart', 'mh', '27-FEB-91', NULL, 2,'WAREHOUSE MANAGER', 41, 1307, NULL);

1 row created.

SQL>
SQL>
SQL>
SQL>
SQL> DECLARE
  2     empRecord employee%ROWTYPE;
  3  BEGIN
  4     SELECT * INTO empRecord
  5     FROM   employee
  6     WHERE  employee_id = 999;
  7  EXCEPTION
  8     WHEN NO_DATA_FOUND THEN
  9        DBMS_OUTPUT.PUT_LINE('No Employee Record Found.');
 10     WHEN TOO_MANY_ROWS THEN
 11        DBMS_OUTPUT.PUT_LINE('More Than One Employee Record Found.');
 12     WHEN OTHERS THEN
 13        DBMS_OUTPUT.PUT_LINE('Unknown Error.');
 14  END;
 15  /
No Employee Record Found.

PL/SQL procedure successfully completed.

SQL>
SQL>
SQL> drop table employee;

Table dropped.








25.8.Implicit Cursor
25.8.1.Taking a Shortcut with CURSOR FOR Loops
25.8.2.%ISOPEN, %FOUND, %NOTFOUND variables aren't useful at all in CURSOR FOR loops
25.8.3.Implicit Cursor Attributes: SQL%NOTFOUND
25.8.4.Implicit Cursor Attributes Example: SQL%ROWCOUNT
25.8.5.NO_DATA_FOUND Exception vs. %NOTFOUND
25.8.6.Looping through a Cursor by Using the LOOP Command
25.8.7.Adding an Exception Handler to a CURSOR FOR Loop
25.8.8.Knowing what record is processing
25.8.9.Use %ROWCOUNT to detect what record you are processing at a given point
25.8.10.Declare and use a cursor in for loop
25.8.11.Implicit cursor open, fetch and close
25.8.12.Handling exceptions in implicit cursors
25.8.13.Returning an implicit cursor into a record
25.8.14.The Difference between Explicit and Implicit Cursors
25.8.15.Implicit Cursor: Too many rows
25.8.16.Implicit Cursor: No rows found
25.8.17.Use implicit or explicit cursor to insert 50000 rows to a table
25.8.18.Test cursor attributes with an implicit cursor