Процедура - это подпрограмма, которая выполняет специфическое действие.
Узнайте, как создавать и удалять процедуры в Oracle / PLSQL с синтаксисом и примерами.
СОЗДАТЬ ПРОЦЕДУРУ (CREATE PROCEDURE)
Как и на других языках программирования, вы можете создавать свои собственные процедуры в Oracle.
Синтаксис
[ (параметр [, параметр, ...]) ] IS
[локальные объявления]
BEGIN
исполняемые предложения
[EXCEPTION
обработчики исключений]
END [имя_процедуры];
При создании процедуры или функции, вы можете определить три типа параметров, которые могут быть объявлены:
IN - Параметр может ссылаться на процедуру или функцию. Значение параметра не может быть изменено процедурой или функцией.
OUT - параметр не может ссылаться на процедуру или функцию, но значение параметра может быть изменено процедурой или функцией.
IN OUT - Параметр может ссылаться на процедуру или функцию и значения параметра может быть изменено процедурой или функцией.
Пример
Рассмотрим на примере, как создать процедуру в Oracle.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
CREATE OR REPLACE Procedure UpdateCourse ( name_in IN varchar2 ) IS cnumber number; cursor c1 is SELECT course_number FROM courses_tbl WHERE course_name = name_in; BEGIN open c1; fetch c1 into cnumber; if c1%notfound then cnumber := 9999; end if; INSERT INTO student_courses ( course_name, course_number ) VALUES ( name_in, cnumber ); commit; close c1; EXCEPTION WHEN OTHERS THEN raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM); END; |
Эта процедура вызывается UpdateCourse. Она имеет один параметр, называемый name_in. Процедура будет искать course_number по значению course_name. Если поиск не увенчается успехом, то по умолчанию course_number равен 99999. Затем происходит вставка новой записи в таблицу student_courses.
УДАЛИТЬ ПРОЦЕДУРУ (DROP PROCEDURE)
После того, как вы создали свою процедуру в Oracle, вам может понадобиться удалить ее из базы данных.
Синтаксис
Синтаксис удаления процедуры в Oracle:
имя_процедуры это имя процедуры, которую вы хотите удалить.
Пример
Давайте посмотрим на примере, как удалить процедуру в Oracle.
В этом примере удаляем процедуру под названием UpdateCourse.