Я создаю триггер, который вызывает ошибку приложения, если длина строки не равна 16.
CREATE OR REPLACE TRIGGER lunghezza_CF
before INSERT OR UPDATE ON Persona
FOR each ROW
BEGIN
IF LENGTH(:NEW.CF) <> 16 THEN
RAISE_APPLICATION_ERROR(-20002, 'CF length must be 16');
END IF;
END;
Таблица Persona
составлена следующим образом:
CF char(16) primary key
...
Если я напишу следующее утверждение
insert into Persona(CF) values('ABC12')
По какой причине «ABC12» вставляется в таблицу?По какой-то причине мой триггер не работает должным образом, но, похоже, все в порядке ...
(обратите внимание, что LENGTH (строка) является встроенной функцией Oracle)