У меня есть следующая таблица:
create table students
(
stuName varchar2(100),
cgpa number
);
Моя цель - создать триггер PL / SQL, который будет срабатывать, если кто-нибудь попытается ввести имя, содержащее какие-либо числовые значения.Моя попытка:
create or replace trigger invalid_name
before insert
on students
for each row
declare
vName varchar2(100);
begin
vName := :new.stuName;
if upper(vName) like upper(vName) then
vName := initcap(vName);
end if;
exception
when value_error then
dbms_output.put_line('ERROR: Name contains numeric value(s).');
end;
Я подумал, что если функция upper
будет воздействовать на строку, содержащую любое числовое значение, она выдаст исключение.Но этого не происходит, и insert
действие выполняется.