кодесурса
«PL / SQL

Упражнения для курсора PL / SQL: Показать использование выборки по одной записи за раз, используя оператор извлечения внутри цикла

script1adsense2code
script1adsense3code

Курсор 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code