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

Упражнения для курсора PL / SQL: отображение идентификатора сотрудника, имени, должности и даты начала текущей работы

script1adsense2code
script1adsense3code

Курсор PL / SQL: упражнение 35 с решением

Напишите блок PL / SQL, чтобы отобразить идентификатор сотрудника, имя, должность и дату начала текущей работы.

Отображает имя, должность, дату начала

Пример решения:

Код PL / SQL:

DECLARE
    CURSOR employees_cur IS
      SELECT employee_id,
             first_name,
             job_title,
             hire_date
      FROM   employees
             NATURAL join jobs;
    emp_first_date DATE;
BEGIN
    dbms_output.Put_line(Rpad('Employee ID', 15)
                         ||Rpad('First Name', 25)
                         ||Rpad('Job Title', 35)
                         ||'First Date');
dbms_output.Put_line('-----------------------------------------------------------------------------------------');
FOR emp_sal_rec IN employees_cur LOOP
    -- find out most recent end_date in job_history
    SELECT Max(end_date) + 1
    INTO   emp_first_date
    FROM   job_history
    WHERE  employee_id = emp_sal_rec.employee_id;
    IF emp_first_date IS NULL THEN
      emp_first_date := emp_sal_rec.hire_date;
    END IF;
    dbms_output.Put_line(Rpad(emp_sal_rec.employee_id, 15)
                         ||Rpad(emp_sal_rec.first_name, 25)
                         || Rpad(emp_sal_rec.job_title, 35)
                         || To_char(emp_first_date, 'dd-mon-yyyy'));
END LOOP;
END; 
/

Пример вывода:

 SQL> /
Идентификатор сотрудника Имя Должность Должность Первая дата
-------------------------------------------------- ---------------------------------------
206 William Public Accountant 07-июн-2002
205 Шелли Менеджер по бухгалтерскому учету 07 июня 2002
200 Помощник Администрации Дженнифер 01 января 2007
100 Стивен Президент 17 июня 2003 г.
102 Администрация Lex вице-президент 25 июля 2006
101 вице-президент администрации Neena, 16 марта 2005 г.
110 Джон Бухгалтер 28 сентября 2005
109 Даниэль Бухгалтер 16 августа 2002
113 Луис Бухгалтер 07 декабря 2007
111 Исмаэль Бухгалтер 30 сентября 2005
112 Жозе Мануэль Бухгалтер 07 марта 2006
108 Nancy Finance Manager 17 августа 2002 г.
203 Сьюзен Представитель по персоналу 07 июня 2002 г.
...

Блок - схема:

«Блок-схема:

Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущая: напишите блок PL / SQL, чтобы показать использование виртуального столбца в явном запросе курсора.
Далее: Напишите блок PL / SQL, чтобы отобразить название отдела и его самого дорогого сотрудника.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code