BEGIN в Oracle SQL — как начинать блок PL/SQL кода

🟢 BEGIN в Oracle SQL. Введение

BEGIN используется в Oracle для начала блока PL/SQL-кода. Всё, что размещено между BEGIN и END, считается выполняемым блоком инструкций. Это основа написания процедур, триггеров, анонимных блоков, функций и других элементов, где нужен программный контроль выполнения.


🔤 Написание

sql
BEGIN
-- действия
END;

Часто сочетается с DECLARE, EXCEPTION, переменными и SQL-инструкциями внутри.


🔄 Где используется

  • В анонимных PL/SQL-блоках

  • В хранимых процедурах и функциях

  • В триггерах

  • Для отладки и выполнения нескольких операторов сразу

  • В блоках с EXCEPTION для обработки ошибок


🧪 10 Примеров использования BEGIN

1️⃣ Простой анонимный блок

sql
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, Oracle!');
END;

Выведет строку в буфер консоли.


2️⃣ БЕГИН с переменной (внутри DECLARE)

sql
DECLARE
v_salary NUMBER := 5000;
BEGIN
DBMS_OUTPUT.PUT_LINE('Salary: ' || v_salary);
END;

3️⃣ BEGIN с выполнением UPDATE

sql
BEGIN
UPDATE employees SET salary = salary * 1.1 WHERE department_id = 50;
COMMIT;
END;

Изменение и сохранение данных.


4️⃣ БЕГИН с обработкой ошибки

sql
BEGIN
DELETE FROM employees WHERE employee_id = 9999;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Произошла ошибка');
END;

5️⃣ БЕГИН внутри процедуры

sql
CREATE OR REPLACE PROCEDURE say_hello IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Привет!');
END;

6️⃣ BEGIN внутри функции

sql
CREATE OR REPLACE FUNCTION double_salary(p_sal NUMBER) RETURN NUMBER IS
BEGIN
RETURN p_sal * 2;
END;

7️⃣ БЕГИН в триггере

sql
CREATE OR REPLACE TRIGGER trg_log_salary
BEFORE UPDATE ON employees
FOR EACH ROW
BEGIN
INSERT INTO salary_log(emp_id, old_sal, new_sal)
VALUES (:OLD.employee_id, :OLD.salary, :NEW.salary);
END;

8️⃣ Вызов BEGIN из SQL Developer

sql
BEGIN
my_procedure;
END;

Вызов своей процедуры.


9️⃣ БЕГИН с условием IF

sql
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM employees;
IF v_count > 100 THEN
DBMS_OUTPUT.PUT_LINE('Больше 100 сотрудников');
END IF;
END;

🔟 БЕГИН с вложенным блоком

sql
BEGIN
DBMS_OUTPUT.PUT_LINE('Начало');
BEGIN
DBMS_OUTPUT.PUT_LINE('Вложенный блок');
END;
END;

🧩 BEGIN в Oracle SQL. Заключение

BEGIN — фундаментальный элемент языка PL/SQL, открывающий блок логики. Всё, что находится внутри, выполняется последовательно. Без него невозможно создать процедуры, функции, триггеры и сложные блоки кода.

💡 Помни:

  • BEGIN всегда должен завершаться END

  • Может использоваться с EXCEPTION для перехвата ошибок

  • Поддерживает вложенность

  • Часто применяется для отладки и автономных операций


🔜 Следующая статья:

AUDIT в Oracle SQL — как вести аудит действий пользователей


Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии