Главная » Просмотр файлов » Брешенков А.В., Галямова Е.В., Ефремов С.В. - Процедуры и функции в Oracle, Триггеры в Oracle

Брешенков А.В., Галямова Е.В., Ефремов С.В. - Процедуры и функции в Oracle, Триггеры в Oracle (1075561), страница 2

Файл №1075561 Брешенков А.В., Галямова Е.В., Ефремов С.В. - Процедуры и функции в Oracle, Триггеры в Oracle (Брешенков А.В., Галямова Е.В., Ефремов С.В. - Процедуры и функции в Oracle, Триггеры в Oracle) 2 страницаБрешенков А.В., Галямова Е.В., Ефремов С.В. - Процедуры и функции в Oracle, Триггеры в Oracle (1075561) страница 22017-12-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

No bonus allowed.');END IF;END IF;EXCEPTION -- exception-handling part starts hereWHEN salary_missing THENDBMS_OUTPUT.PUT_LINE('Employee ' || emp_id ||' does not have a value for salary. No update.');WHEN OTHERS THENNULL; -- for other exceptions do nothingEND award_bonus;/-- the following BEGIN..END block calls, or executes, the award_bonus procedure-- using employee IDs 123 and 179 with the bonus rate 0.05 (5%)BEGINaward_bonus (123, 0.05);award_bonus (179, 0.05);END;/После вызова этих процедур появятся сообщения:Employee 123 received a bonus: 325Employee 179 receives a commission.

No bonus allowed.Данная процедура использует два параметра, - идентификатор служащего и размербонуса. Идентификатор используется для получения размера зарплаты и выясненияполучает ли данный служащий комиссию из таблицы служащие (emplyees). Если зарплатау служащего нулевая, вызывается исключение. Если служащий не получает комиссию, тоего зарплата автоматически изменяется с помощью бонуса, в других случаях все остается,как и было.6.

Создание функций с помощью SQL команды CREATE FUNCTION.Команда CREATE FUNCTION позволяет создавать функции, которые будутхраниться в базе данных. К таким хранимым (на схемном уровне) подпрограммаморганизован доступ из объекта «SQL». Вы можете использовать опцию OR REPLACE,чтобы изменить существующую функцию, не удаляя ее сначала.Пример №3 демонстрирует работу функции, которая возвращает объект строковоготипа, в котором первые буквы имени и фамилии заменяются на заглавные, а также вызовфункции.Пример №3. Функция last_first_name(empid NUMBER).CREATE OR REPLACE FUNCTION last_first_name (empid NUMBER)RETURN VARCHAR2 ISlastname employees.last_name%TYPE; -- declare a variable same as last_namefirstname employees.first_name%TYPE; -- declare a variable same as first_nameBEGINSELECT last_name, first_name INTO lastname, firstname FROM employeesWHERE employee_id = empid;RETURN ( 'Employee: ' || empid || ' - ' || UPPER(lastname)|| ', ' || UPPER(firstname) );END last_first_name;/-- you can use the following block to call the functionDECLAREempid NUMBER := 163; -- pick an employee ID to test the functionBEGIN-- display the output of the functionDBMS_OUTPUT.PUT_LINE( last_first_name(empid) );END;/-- you can also call a function from a SQL SELECT statement-- using the dummy DUAL tableSELECT last_first_name(163) FROM DUAL;Пример №4 демонстрирует работу функции, возвращающую объект числовоготипа.

Функция возвращает вычисленный уровень зарплаты служащих определеннойпрофессии, основанный на минимальной и максимальной зарплате и идентификаторепрофессии.Пример №4. Функция emp_sal_rankig(empid NUMBER).-- function calculates the salary ranking of the employee based on the current-- minimum and maximum salaries for employees in the same job categoryCREATE OR REPLACE FUNCTION emp_sal_ranking (empid NUMBER)RETURN NUMBER ISminsal employees.salary%TYPE; -- declare a variable same as salarymaxsal employees.salary%TYPE; -- declare a variable same as salaryjobid employees.job_id%TYPE; -- declare a variable same as job_idsal employees.salary%TYPE; -- declare a variable same as salaryBEGIN-- retrieve the jobid and salary for the specific employee IDSELECT job_id, salary INTO jobid, sal FROM employees WHERE employee_id = empid;-- retrieve the minimum and maximum salaries for employees with the same job IDSELECT MIN(salary), MAX(salary) INTO minsal, maxsal FROM employeesWHERE job_id = jobid;-- return the ranking as a decimal, based on the following calculationRETURN ((sal - minsal)/(maxsal - minsal));END emp_sal_ranking;/-- create a PL/SQL block to call the function, you can also use another subprogram-- because a function returns a value, it is called as part of a line of codeDECLAREempid NUMBER := 163; -- pick an employee ID to test the functionBEGIN-- display the output of the function, round to 2 decimal placesDBMS_OUTPUT.PUT_LINE('The salary ranking for employee ' || empid || ' is: '|| ROUND(emp_sal_ranking(empid),2) );END;/После вызова этой процедуры появится сообщение:The salary ranking for employee 163 is: .637.

Вызов хранимых процедур и функцийВы можете запускать процедуры и функции из BEGIN..END блока или из другихподпрограмм.Вызывая процедуру или функцию необходимо принимать во внимание следующиеособенности:Указание позиции: Вы указываете те же значения параметров и в той жепозиции, на которой они были заданы при создании процедуры. Обращайтевнимание именно на порядок, которым идут параметры.Указание наименования: Вы указываете название параметра и его значение,соединяете их знаком « => ».

В этом случае порядок не важен.Смешанные указания: Вы можете использовать оба способа в одном месте,но при этом необходимо сохранять порядок, с которым были заданыпараметры.Пример №5. Различные техники вызова процедур и функций.-- use a PL/SQL block to execute the procedureBEGINaward_bonus(179, 0.05);END;/-- using named notation for the parameters, rather than positionalBEGINaward_bonus(bonus_rate=>0.05, emp_id=>123);END;/Вы также можете вызывать процедуры или функции во время созданияприложений, Java ил PНР программ.8. Изменение процедур и функцийВы можете изменять процедуры и функции разными способами: на странице SQLкоманд, на странице просмотра объектов, на странице создания SQL скриптов или спомощью SQL команды CREATE OR REPLACE.Если Вы хотите изменить процедуру или функцию с помощью SQL командыCREATE OR REPLACE, то Вы вместо старого исходного кода создаете новый, и тогдапосле компиляции он изменится.Чтобы изменить процедуру или функцию с помощью страницы создания SQLскриптов, необходимо выполнить следующие действия:1.Войдите на страницу базы данных с помощью пароля, полученного отпреподавателя.2.На главной странице щелкните мышкой по иконке «SQL», чтобы отобразитьстраницу управления SQL.3.На странице SQL нажмите на иконку «SQL Commands», чтобы перейти наследующую страницу.4.Перейдите на закладку «Saved SQL».5.Выберите по имени процедуру или функцию, которую хотите изменить.6.Измените исходный код и нажмите «RUN», если хотите запустить наисполнение ее.7.Нажмите «SAVE», чтобы сохранить внесенные изменения.Изменение процедур или функций с помощью страницы просмотра объектов.1.Войдите на страницу базы данных с помощью пароля, полученного отпреподавателя.2.На главной странице щелкните мышкой по объекту «Object Browser», чтобыоткрылась страница просмотра объектов.3.Из выпадающего списка выберите процедуру или функцию, затем щелкните поимени процедуры, которую хотите изменить.4.Когда появилась информация о данном объекте, нажмите «Edit», чтобыизменить исходный код.5.Нажмите кнопку «Compile», чтобы убедиться в том, что измененный кодработает, и в случае появления ошибок их исправить.9.

Удаление процедур и функцийВы можете удалять процедуры и функции разными способами: на странице SQLкоманд, на странице просмотра объектов или с помощью SQL команды DROP.Чтобы удалить процедуру или функцию с помощью страницы просмотра объектовнеобходимо выполнить следующие действия:1.Войдите на страницу базы данных с помощью пароля, полученного отпреподавателя.2.На главной странице щелкните мышкой по объекту «Object Browser», чтобыоткрылась страница просмотра объектов.3.Из выпадающего списка выберите процедуру или функцию, затем щелкните поимени процедуры, которую хотите удалить.4.Когда появилась информация о данном объекте, нажмите «Drop».5.Нажмите кнопку «Finish», чтобы подтвердить данное действие.Пример использовании команды Drop показан ниже.Пример №6.

Удаление процедур и функций с помощью команды «DROP».-- drop the procedure award_bonus to remove from the databaseDROP PROCEDURE award_bonus;-- drop the function emp_sal_ranking to remove from databaseDROP FUNCTION emp_sal_ranking;10. ЗаключениеВ данной лабораторной работе Вы познакомились с существующими встроеннымипроцедурами и функциями, с алгоритмом создания, применения и удаления новыхобъектов и изменения встроенных процедур и функций.Надеемся, что полученные знания Вы сможете применить на практике присоздании собственных приложений под Oracle 10g X.E.11.

Контрольные вопросы.1.«Что такое процедура?», «Что такое функция?»2.«Какими средствами можно создать процедуру или функцию?»3.«Какие PL\SQL команды используются для создания процедур и функций и каков ихсинтаксис?»4.«Как можно посмотреть существующие процедуры или функции?»5.«Как изменить или удалить процедуры или функции?»12. Рекомендуемая литература.1. Гарсиа – Молина, Ульман, Уидом. Системы баз данных.

Полный Курс. Пер. сангл.- М.: Издательский дом Вильямс, 2003 – 1088 стр.2. Грабер М. Введение в SQL: Пер с англ. – М.:Изд-во’ЛОРИ’,1996. – 380с.3. 3. Джеймс Перри, Джеральд Пост. Введение в Oracle 10g “И.Д. Вильямс”, 2006. –700 с.4. Гринвальд Рик, Становьяк Робеот, Додж Гери, Кляйн Девид, Шапиро Бен, ЧельяКристофер Дж. Программирование баз данных Oracle для профессионалов.: Пер.

с англ.: –М. : ООО “И.Д. Вильямс”, 2007. – 784 с.5. Кайт Томас. Oracle для профессионалов: архитектура, методика программированияи основные особенности версии 9i и 10j.: Пер с англ. – М.:Издательский дом ”Вильямс”.2008. – 848 с.6. Кевин Луни, Боб Брила. Oracle Database 10g. Настольная книга администратора базданных.

– М.:Издательство’Лори’,2008. – 732 с.7. Райан стивенс, Рональд Плю. SQL. Пер с англ. – М.:ЗАО ’ИздательствоБином’,1998.-400 с.Методическое пособие по лабораторной работе №4Триггеры в Oracle1Введение.В данной лабораторной работе Вы познакомитесь с существующими встроеннымитриггерами, с алгоритмом создания, применения и удаления новых объектов и изменениявстроенных триггеров.Вы можете создавать, удалять и изменять триггеры разными способами: настранице SQL команд, на странице просмотра объектов, на странице создания SQLскриптов или с помощью командной строки SQL команд.SQL выражение CREATE используется для создания любых объектов в Oracle:CREATE TRIGGER позволит создать триггер.Триггеры баз данных это хранимые процедуры, связанные с таблицами, видами,или событиями.

Триггер может быть вызван однажды, когда происходит какое-тособытие, или много раз, когда происходит какое-либо изменение таблицы (вставка новойстроки, удаление или изменение существующей). Триггер может быть вызван послесобытия, чтобы записать новые данные или произвести необходимые после данногособытия действия. Триггер может быть вызван перед каким-либо событием, чтобыизбежать ошибочных действий или изменить данные так, чтобы они удовлетворялиправилам ведения бизнеса.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6505
Авторов
на СтудИзбе
302
Средний доход
с одного платного файла
Обучение Подробнее