Упражнения для курсора PL / SQL: вставка данных в две таблицы из одной таблицы с помощью курсора
Курсор PL / SQL: упражнение 22 с решением
Напишите программу на PL / SQL для вставки данных в две таблицы из одной таблицы с помощью курсора.
Пример решения:
Код PL / SQL:
DROP TABLE emp_temp;
CREATE TABLE emp_temp AS
SELECT employee_id, department_id,job_id
FROM employees;
DELETE FROM emp_temp;
COMMIT;
DROP TABLE emp_detls_temp;
CREATE TABLE emp_detls_temp(
employee_id NUMBER,
empname varchar2(40));
DECLARE
z_empid employees.employee_id%TYPE;
z_depid employees.department_id%TYPE;
z_firstname employees.first_name%TYPE;
z_lastname employees.last_name%TYPE;
CURSOR cur_stclerk IS
SELECT employee_id,
department_id,
first_name,
last_name
FROM employees
WHERE job_id ='ST_CLERK';
BEGIN
OPEN cur_stclerk;
LOOP
FETCH cur_stclerk INTO z_empid,z_depid,z_firstname, z_lastname;
EXIT WHEN cur_stclerk%NOTFOUND;
INSERT INTO emp_temp
(employee_id,
department_id,
job_id)
VALUES (z_empid,
z_depid,
'ST_CLERK');
INSERT INTO emp_detls_temp
(employee_id,
empname)
VALUES (z_empid,
z_firstname
|| ' '
|| z_lastname);
END LOOP;
CLOSE cur_stclerk;
COMMIT;
END;
/
Пример вывода:
Процедура PL / SQL успешно завершена. Если вы хотите увидеть вставленные данные из таблицы emp_temp и emp_detls_temp, введите следующую инструкцию: выберите * из emp_temp; выберите * из emp_detls_temp;
Блок - схема:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущая: Напишите программу на PL / SQL для распечатки списка менеджеров и названия отделов.
Далее: Напишите программу на PL / SQL для вставки данных в две таблицы из одной таблицы с использованием неявного курсора.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code