SQL>
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> CREATE TABLE process_timing_log
2 (program_name VARCHAR2(30),
3 execution_date DATE,
4 records_processed NUMBER,
5 elapsed_time_sec NUMBER);
Table created.
SQL>
SQL> CREATE OR REPLACE PROCEDURE update_salary AS
2 CURSOR empCursor IS
3 SELECT employee_id, salary, ROWID
4 FROM employee;
5 lv_new_salary_num NUMBER;
6 lv_count_num PLS_INTEGER := 0;
7 lv_start_time_num PLS_INTEGER;
8 lv_total_time_num NUMBER;
9 BEGIN
10 lv_start_time_num := DBMS_UTILITY.GET_TIME;
11 FOR empCursor_rec IN empCursor LOOP
12 lv_count_num := lv_count_num + 1;
13 lv_new_salary_num := empCursor_rec.salary;
14 UPDATE employee
15 SET salary = lv_new_salary_num
16 WHERE rowid = empCursor_rec.ROWID;
17 END LOOP;
18 lv_total_time_num := (DBMS_UTILITY.GET_TIME - lv_start_time_num)/100;
19 INSERT INTO process_timing_log(program_name, execution_date, records_processed,elapsed_time_sec)
20 VALUES('UPDATE_SALARY', SYSDATE, lv_count_num, lv_total_time_num);
21 COMMIT;
22 END update_salary;
23 /
Procedure created.
SQL>
SQL>
SQL> SELECT program_name,
2 TO_CHAR(execution_date,'MM/DD/YYYY HH24:MI:SS') execution_time,
3 records_processed, elapsed_time_sec
4 FROM process_timing_log
5 ORDER BY 1,2;
no rows selected
SQL>
SQL> drop table employee;
Table dropped.
SQL>
SQL>
SQL> drop table process_timing_log;
Table dropped.
|