Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИТиУвТС / ИОСУ Вариант14 СУБД Oracle / Контрольная работа.docx
Скачиваний:
67
Добавлен:
01.04.2014
Размер:
10.67 Mб
Скачать

Практическая часть

Задание: Создать динамическую процедуру, изменяющую значения заработной платы сотрудников на указанный в аргументе процент, адрес офиса с сотрудниками получающими надбавку; указывать в качестве второго входного аргумента.

Создаем модуль, в котором будет находится наша процедура:

CREATE OR REPLACE PACKAGE my_paketik AS

PROCEDURE nadbavka(p_percent IN NUMBER, p_address IN branch.bno%TYPE);

END my_paketik;

/

Создаем тело модуля с нужной процедурой:

CREATE OR REPLACE PACKAGE BODY my_paketik AS

PROCEDURE nadbavka(p_percent IN NUMBER, p_address IN branch.bno%TYPE) IS

p_cursor INTEGER;

p_text VARCHAR2(255);

p_update NUMBER;

BEGIN

p_cursor := DBMS_SQL.OPEN_CURSOR;

p_text := 'UPDATE staff SET salary=salary*(l+:nec_percent/100) WHERE bno IN (SELECT bno FROM branch WHERE bno=:nec_address) ';

DBMS_SQL.PARSE(p_cursor, p_text, DBMS_SQL.NATIVE);

DBMS_SQL.BIND_VARIABLE(p_cursor, ':nec_percent', p_percent);

DBMS_SQL.BIND_VARIABLE(p_cursor, ':nec_address', p_address);

p_update:= DBMS_SQL.EXECUTE(p_cursor);

DBMS_SQL.CLOSE_CURSOR(p_cursor);

EXCEPTION

WHEN OTHERS THEN

DBMS_SQL.CLOSE_CURSOR(p_cursor);

RAISE;

END nadbavka;

END my_paketik;

/

Выполняем процедуру в модуле:

EXECUTE my_paketik.nadbavka(10,4);

Экранная форма:

Вывод: В результате выполнения работы были изучены объекты баз данных, такие как модули, а также системные модули DBMSOUTPUT и DBMS SQL, предназначенных для отладки приложений PL/SQL и написания процедур динамической обработки SQL-операторов. Динамическая процедура INFORMATION была создана для обработки и представления средствами серверного вывода информации о сотрудниках из таблицы STAFFX. При вызове процедуры появляется список сотрудников, по соответствующей профессии, а также количество данных записей.

Соседние файлы в папке ИОСУ Вариант14 СУБД Oracle