Упражнения для курсора PL / SQL: Показать использование выборки по одной записи за раз, используя оператор извлечения внутри цикла
Курсор PL / SQL: упражнение 25 с решением
Напишите программу на PL / SQL, чтобы показать использование выборки по одной записи за раз, используя оператор извлечения внутри цикла.
Пример решения:
Код PL / SQL:
DECLARE
CURSOR cur1 IS
SELECT first_name,
last_name,
job_id
FROM employees
WHERE Regexp_like (job_id, 'S[TA]_MAN')
ORDER BY last_name;
emp_firstname employees.first_name%TYPE;
emp_lastname employees.last_name%TYPE;
emp_jobid employees.job_id%TYPE;
CURSOR cur2 IS
SELECT *
FROM employees
WHERE Regexp_like (job_id, '[ACADFIMKSA]_M[ANGR]')
ORDER BY job_id;
all_employees employees%ROWTYPE;
BEGIN
OPEN cur1;
LOOP -- Fetches 2 columns into variables
FETCH cur1 INTO emp_firstname, emp_lastname, emp_jobid;
EXIT WHEN cur1%NOTFOUND;
dbms_output.Put_line(Rpad(emp_firstname, 25, ' ')
||Rpad(emp_lastname, 25, ' ')
|| emp_jobid);
END LOOP;
CLOSE cur1;
dbms_output.Put_line('-------------------------------------');
OPEN cur2;
LOOP -- Fetches entire row into the v_employees record
FETCH cur2 INTO all_employees;
EXIT WHEN cur2%NOTFOUND;
dbms_output.Put_line(Rpad(all_employees.first_name, 25, ' ')
||Rpad(all_employees.last_name, 25, ' ')
|| all_employees.job_id);
END LOOP;
CLOSE cur2;
END;
/
Пример вывода:
SQL> / Джеральд Камбро SA_MAN Альберто Эрразуриз СА_МАН Адам Фрипп ST_MAN Паям Кауфлинг ST_MAN Кевин Моргос ST_MAN Карен Партнерс SA_MAN Джон Рассел SA_MAN Шанта Воллман ST_MAN Мэтью Вайс ST_MAN Элени Злоткей СА_МАН ------------------------------------- Шелли Хиггинс AC_MGR Нэнси Гринберг FI_MGR Михаэль Хартштейн MK_MAN Джон Рассел SA_MAN Карен Партнерс SA_MAN Альберто Эрразуриз СА_МАН Джеральд Камбро SA_MAN Элени Злоткей СА_МАН Процедура PL / SQL успешно завершена.
Блок - схема:
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на PL / SQL для создания курсора, отображающего имя и зарплату каждого сотрудника в таблице EMPLOYEES, зарплата которой меньше, чем указана в переданном значении параметра.
Далее: Напишите программу на PL / SQL для извлечения первых трех строк результирующего набора в три записи, используя один и тот же явный курсор в разные переменные.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования