employeeid, employeeename и jobid - это обязательные поля NOT NULL в моей таблице. Если какой-либо из них имеет значение null, я хочу вызвать исключение VALUE_ERROR, хотя я не получаю ожидаемых результатов.
CREATE OR REPLACE PROCEDURE insert_employee(
p_employeeid IN employees.employeeid%TYPE,
p_employeename IN employees.employeename%TYPE,
p_phone IN employees.phone%TYPE,
p_jobid IN employees.jobid%TYPE,
p_salary IN employees.salary%TYPE,
p_managerid IN employees.managerid%TYPE,
p_departmentid IN employees.departmentid%TYPE
)
IS
BEGIN
IF p_employeeid = NULL THEN
RAISE VALUE_ERROR;
ELSE IF p_employeename = NULL THEN
RAISE VALUE_ERROR;
ELSE IF p_jobid = NULL THEN
RAISE VALUE_ERROR;
ELSE
INSERT INTO employees (employeeid, employeename, phone, jobid, salary, managerid, departmentid)
VALUES(p_employeeid, p_employeename, p_phone, p_jobid, p_salary, p_managerid, p_departmentid);
END IF;
EXCEPTION
WHEN VALUE_ERROR THEN
RAISE_APPLICATION_ERROR (06502, 'VALUE_ERROR');
END;
Я получаю эту ошибку:
Ошибки: ПРОЦЕДУРА INSERT_EMPLOYEE Строка / Кол: 30/1 PLS-00103: Обнаружен символ «ИСКЛЮЧЕНИЕ» при ожидании одного из следующих действий: (начинайте регистр, объявляйте завершение выхода для goto, если цикл mod null прагма поднять return select update, в то время как с << продолжить закрыть текущий удалить выборку заблокировать вставить открыть откат сохранение точка сохранения sql выполнить фиксацию для полной очистки канала слияния json_exist json_query json_object json_array Строка / столбец: 34/4 PLS-00103: обнаружен символ «конец файла» при ожидании одного из следующее: конец не прагма окончательный инстанцируемый персистентный порядок, переопределяющий статическую карту конструктора элемента </em>