Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Cursor
 

Cursor with order by

SQL> SQL> CREATE TABLE employee   2  (employee_id         NUMBER(7),   3   employee_last_name  VARCHAR2(25),   4   employee_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> DECLARE   2     CURSOR cur_employee IS   3        SELECT employee_last_name || ', ' ||   4               employee_first_name name,   5               DECODE(commission_pct, NULL, 'NO',0, 'NO', 'YES') comm_flag   6        FROM   employee   7        ORDER BY DECODE(COMMISSION_PCT, NULL, 'NO',0, 'NO', 'YES') DESC;   8  BEGIN   9     FOR lv_cur_employee_rec IN cur_employee LOOP  10        DBMS_OUTPUT.PUT_LINE(lv_cur_employee_rec.name || CHR(9) ||  11           'Commission?: ' || lv_cur_employee_rec.comm_flag);  12    END LOOP;  13  END;  14  / V, Ben  Commission?: NO N, Haidy        Commission?: NO N, Molly        Commission?: NO S, Mark Commission?: NO H, Mart Commission?: NO U, MOLLY        Commission?: NO M, ROBERTA      Commission?: NO B, BEN  Commission?: NO C, Jane Commission?: NO R, AUDRY        Commission?: NO PL/SQL procedure successfully completed. SQL> SQL> drop table employee; Table dropped. SQL>