Главная страница

Отчет. Отчет по лабораторной работе 5 по дисциплине Тема создание хранимых процедур и функций в oracle. Вариант 18 Выполнил студент группы Подпись, дата Инициалы, фамилия


Скачать 267.7 Kb.
НазваниеОтчет по лабораторной работе 5 по дисциплине Тема создание хранимых процедур и функций в oracle. Вариант 18 Выполнил студент группы Подпись, дата Инициалы, фамилия
АнкорОтчет
Дата25.04.2022
Размер267.7 Kb.
Формат файлаdocx
Имя файлаОтчет.docx
ТипОтчет
#495536



Факультет информационных технологий и компьютерной безопасности


(факультет)

Кафедра Систем автоматизированного проектирования и информационных систем



ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ № 5




по дисциплине



Тема СОЗДАНИЕ ХРАНИМЫХ ПРОЦЕДУР И ФУНКЦИЙ В ORACLE. Вариант 18




Выполнил студент группы

Подпись, дата Инициалы, фамилия

Принял ………………………………………


Подпись, дата Инициалы, фамилия


Защищена ___________________ Оценка _____________________________

дата
2022
Лабораторная работа № 5

«(СОЗДАНИЕ ХРАНИМЫХ ПРОЦЕДУР И ФУНКЦИЙ В ORACLE)»

1 Цель работы

Научиться создавать и использовать хранимые процедуры и функции в схемах Oracle.

2 Задание на лабораторную работу

1. Проработка всех примеров, анализ результатов их выполнения в утилите SQL *Plus Worksheet. Проверка наличия созданных процедур в текущей схеме.

2. Проверка всех выполненных примеров в утилите Enterprise MANAGER Console.

3. Выполнение всех примеров и заданий по ходу лабораторной работы.

4. Выполнение индивидуальных заданий по вариантам.
3 Краткие теоретические сведения

(не обязательно)
4 Ход выполнения

1. Создайте данную процедуру в разделе Schema/ Procedure в схеме ADMIN_BOOKS через утилиту Enterprise MANAGER Console. Запустите ее в утилите SQL *Plus Worksheet с помощью программы:


Рисунок 1 – Создание процедуры


Рисунок 2 – Вызов процедуры


Рисунок 3 – Результат вызова процедуры
2. Создайте данную процедуру в разделе Schema/ Procedure в схеме ADMIN_BOOKS через утилиту Enterprise MANAGER Console. Запустите ее в утилите SQL *Plus Worksheet с помощью программы:


Рисунок 4 – Создание процедуры


Рисунок 5 – Вызов процедуры


Рисунок 6 – Результат вызова процедуры

3. Создайте данную процедуру в разделе Schema/ Procedure в схеме ADMIN_BOOKS через утилиту Enterprise MANAGER Console. Запустите ее в утилите SQL *Plus Worksheet с помощью программы:


Рисунок 7 – Создание процедуры


Рисунок 8 – Вызов процедуры


Рисунок 9 – Результат вызова процедуры
4. Создайте данную процедуру в разделе Schema/ Procedure в схеме ADMIN_BOOKS через утилиту Enterprise MANAGER Console. Запустите ее в утилите SQL *Plus Worksheet с помощью программы:


Рисунок 10 – Создание процедуры


Рисунок 11 – Вызов процедуры


Рисунок 12 – Результат вызова процедуры
5. Создайте данную процедуру в разделе Schema/ Procedure в схеме ADMIN_BOOKS через утилиту Enterprise MANAGER Console. Запустите ее в утилите SQL *Plus Worksheet с помощью программы:


Рисунок 13 – Создание процедуры


Рисунок 14 – Вызов процедуры


Рисунок 15 – Результат вызова процедуры
6. Создайте данную процедуру в разделе Schema/ Procedure в схеме ADMIN_BOOKS через утилиту Enterprise MANAGER Console. Запустите ее в утилите SQL *Plus Worksheet с помощью программы:


Рисунок 16 – Создание процедуры


Рисунок 17 – Вызов процедуры


Рисунок 18 – Результат вызова процедуры
7. Создайте данную функцию в разделе Schema/ Function в схеме ADMIN_BOOKS через утилиту Enterprise MANAGER Console. Запустите ее в утилите SQL *Plus Worksheet с помощью программы:


Рисунок 19 – Создание функции


Рисунок 20 – Вызов функции


Рисунок 21 – Результат вызова функции
8. Создайте данную функцию в разделе Schema/ Function в схеме ADMIN_BOOKS через утилиту Enterprise MANAGER Console. Запустите ее в утилите SQL *Plus Worksheet с помощью программы:


Рисунок 22 – Создание функции


Рисунок 23 – Вызов функции


Рисунок 24 – Результат вызова функции

Вариант 18

1. Вывести список ремонтных работ, выполненных определенным мастером.

create or replace procedure Works_List_By_Master

(

m_id in int,

cursor1 out SYS_REFCURSOR

) is

begin

open cursor1 for

select * from Works where master_id = m_id;

end Works_List_By_Master;
SET SERVEROUTPUT ON

Declare

type cur_select1 is ref cursor;

cur_select2 cur_select1;

w_id works.work_id%type;

w_name works.work_name%type;

w_master_id works.master_id%type;

w_cost works.cost%type;

begin

Works_List_By_Master(1, cur_select2);

loop

FETCH cur_select2 INTO w_id, w_name, w_master_id, w_cost;

exit when cur_select2%NOTFOUND OR cur_select2%NOTFOUND IS

NULL;

DBMS_OUTPUT.PUT_LINE(cur_select2%ROWCOUNT || '. ' || w_name || '. Стоимость: ' || w_cost);

end loop;

close cur_select2;

end;


Рисунок 25 – Результат работы процедуры

2. Вывести список этапов работ, входящих в работы, в названии которых встречается указанное слово.

create or replace procedure Stages_In_Works_Like

(

w_name in nvarchar2,

cursor1 out SYS_REFCURSOR

) is

begin

open cursor1 for

select s.stage_name from stages s

join work_stages ws on ws.stage_id = s.stage_id

join works w on w.work_id = ws.work_id

where w.work_name like '%'||trim(w_name)||'%';

end Stages_In_Works_Like;
SET SERVEROUTPUT ON

Declare

type cur_select1 is ref cursor;

cur_select2 cur_select1;

s_name stages.stage_name%type;

begin

Stages_In_Works_Like('крас', cur_select2);

loop

FETCH cur_select2 INTO s_name;

exit when cur_select2%NOTFOUND OR cur_select2%NOTFOUND IS

NULL;

DBMS_OUTPUT.PUT_LINE(cur_select2%ROWCOUNT || '. ' || s_name);

end loop;

close cur_select2;

end;


Рисунок 26 – Результат работы процедуры

3. Вывести сумму стоимости этапов ремонтных работ для работ с кодом в указанном диапазоне.

CREATE OR REPLACE PROCEDURE Stages_Cost_In_Works

(id_1 in int, id_2 in int, total_sum OUT number)

IS

begin

select sum(s.cost) into total_sum

from stages s

join work_stages ws on ws.stage_id = s.stage_id

where ws.work_id between id_1 and id_2;

end Stages_Cost_In_Works;
SET SERVEROUTPUT ON

DECLARE

I NUMBER;

begin

Stages_Cost_In_Works (1, 3, I);

DBMS_OUTPUT.PUT_LINE(I);

end;


Рисунок 27 – Результат работы процедуры
4. Вывести список мастеров с датой приема на работу в указанном диапазоне.

create or replace procedure Masters_Hired_In_Dates

(

d1 in date,

d2 in date,

cursor1 out SYS_REFCURSOR

) is

begin

open cursor1 for

select * from masters

where hire_date between d1 and d2;

end Masters_Hired_In_Dates;
SET SERVEROUTPUT ON

Declare

type cur_select1 is ref cursor;

cur_select2 cur_select1;

m_id masters.master_id%type;

m_name masters.fullname%type;

m_hire_date masters.hire_date%type;

begin

Masters_Hired_In_Dates(

to_date('10.04.2022', 'dd-mm-yyyy'),

to_date('20.04.2022', 'dd-mm-yyyy'),

cur_select2);

loop

FETCH cur_select2 INTO m_id, m_name, m_hire_date;

exit when cur_select2%NOTFOUND OR cur_select2%NOTFOUND IS

NULL;

DBMS_OUTPUT.PUT_LINE(cur_select2%ROWCOUNT || '. ' || m_name || '. Дата найма: ' || m_hire_date);

end loop;

close cur_select2;

end;


Рисунок 28 – Результат работы процедуры
Вывод
В результате выполнения лабораторной работы № 5 была изучена работа хранимых процедур и функций в схемах Oracle, выполнены индивидуальные задания по варианту 18.

Также были проработаны все примеры, приведенные в тексте лабораторной работы.


написать администратору сайта