Практические занятия по курсу «Разработка программных единиц pl/sql»


Практическое занятие 2. Создание функций


Download 287.16 Kb.
bet2/14
Sana03.06.2024
Hajmi287.16 Kb.
#1842245
TuriЗанятие
1   2   3   4   5   6   7   8   9   ...   14
Bog'liq
Блоки. Часть 2

Практическое занятие 2. Создание функций


  • Создание функций.

  • Уровень чистоты.




  1. Создайте функцию GET_JOB, которая возвращает job_title.

    1. Создайте функцию GET_JOB, которая возвращает JOB_TITLE, соответствующий переданному на вход JOB_ID.

    2. Для тестирования работы функции создайте анонимный блок, объявите хост-переменную b_title типа VARCHAR2, сохраните в нее результат работы функции и выведите результат работы функции для значения входного параметра SA_REP.



  1. Создайте функцию GET_ANNUAL_COMP для формирования фактической зарплаты сотрудника по заданной формуле.

    1. Формула: (salary*12)+(commission_pct*salary*12). Функция должна принимать на вход месячную зарплату сотрудника и комиссию, и даже в случае если оба значения будут NULL возвращать не NULL.

    2. Протестируйте работу функции с помощью оператора SELECT для сотрудников из 30 отдела.



  1. Создайте процедуру ADD_EMPLOYEE для добавления нового сотрудника в табличку EMPLOYEES. Перед добавлением сотрудника процедура должна проверять с помощью функции VALID_DEPTID, что указанный для него номер отдела присутствует в таблице DEPARTMENTS.

  1. Создайте функцию VALID_DEPTID, которая принимает на вход номер отдела и возвращает TRUE или FALSE, в зависимости от того есть или нет такой отдел в таблице DEPARTMENTS.

  2. Создайте процедуру ADD_EMPLOYEE, которая добавляет запись в таблицу EMPLOYEES только в том случае, если функция VALID_DEPTID вернула TRUE, иначе выдает соответствующее сообщение об ошибке. Процедура принимает на вход следующие параметры и присваивает им указанные в скобках значения по умолчанию:

      1. first_name

      2. last_name

      3. e-mail

      4. job (SA_REP)

      5. mgr (145)

      6. sal (1000)

      7. comm (0)

      8. deptid (30)

Для генерации уникального идентификатора сотрудника воспользуйтесь последовательностью EMPLOYEES_SEQ.
Установите значение в столбце hire_date с помощью функции TRUNC(SYSDATE).

  1. Протестируйте работу процедуры для сотрудника Jane Harris из 15 отдела с e-mail-ом JAHARRIS (остальные значения оставьте по умолчанию). Зафиксируйте и объясните результат.

  2. Протестируйте работу процедуры для сотрудника Joe Harris из 80 отдела с e-mail-ом JHARRIS (остальные значения оставьте по умолчанию). Зафиксируйте и объясните результат.

Download 287.16 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   14




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling