41

Re: Робота з діапазонами дат (Оракл)

А що передавати в Date of publish і де?

42

Re: Робота з діапазонами дат (Оракл)

sasha87 написав:

А що передавати в Date of publish і де?

Це питання якраз до вас, ну чи до викладача - що саме було задумано в завданні.

Наскільки я бачу з теперішнього варіанту процедури, а також враховуючи що ви знаєте лише як виконувати завдання в циклі... - пропоную в циклі переглядати кожну стрічку вашої таблиці Books і присвоювати змінній відповідне значення колонки з таблиці.

43

Re: Робота з діапазонами дат (Оракл)

Тепер нарешті розібрався. Працює!!! Дуже дякую усім за допомогу!!!

CREATE OR REPLACE PROCEDURE Book_update(start_date DATE, end_date DATE)
AS
BEGIN
IF start_date=end_date THEN 
RAISE_APPLICATION_ERROR(200,'Дата початку та дата кінця однакові');
ELSIF start_date>end_date THEN 
RAISE_APPLICATION_ERROR(201,'Дата початку більша ніж дата кінця');
ELSIF start_date>SYSTIMESTAMP THEN 
RAISE_APPLICATION_ERROR(202,'Дата початку більша ніж сьогоднішня дата');
END IF;
UPDATE BOOKS SET PRICE=PRICE*1.1,QUANTITYBOOKS=QUANTITYBOOKS*2
WHERE date_of_publish BETWEEN start_date AND end_date;
END;
SET SERVEROUTPUT ON
exec Book_update('20.04.2020','23.04.2020');
commit;