Я пытаюсь написать процедуру для отображения дня недели, но я получаю ошибку: «ORA-01841: (полный) год должен быть между -4713 и +9999 и не может быть 0». Другая проблема заключается в том, что я сделал триггер, который проверяет, был ли обновлен столбец в SCOTT.BONUS.SALARY, и вычисляет «сколько» - поднимает и возвращает его. Он говорит, что NEW.SAL должен быть объявлен, но как он может быть объявлен, если это имя столбца ...? Я думаю, что я довольно близок, но мне чего-то не хватает, Может кто-нибудь помочь, пожалуйста? Очень ценится.
-- trigger --
CREATE OR REPLACE TRIGGER Raise
BEFORE DELETE OR INSERT OR UPDATE ON SCOTT.BONUS
FOR EACH ROW
WHEN (NEW.SAL > 0.1*OLD.SAL)
DECLARE
howmuch number;
BEGIN
howmuch := 0.1*NEW.SAL;
dbms_output.put_line('Bonus changed to 10% - : ' || howmuch);
END;
/
-- Procedure --
CREATE OR REPLACE PROCEDURE Birth_Day(data IN varchar, Dey OUT varchar) IS
BEGIN
select to_char(date'data', 'Day') INTO Dey from dual;
END;
/
-- Starting procedure Birth_Day --
DECLARE
Dey varchar(20);
begin
Birth_Day('10/11/2020',Dey);
end;