Re: Робота з діапазонами дат (Оракл)
А що передавати в Date of publish і де?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Бази даних → Робота з діапазонами дат (Оракл)
Для відправлення відповіді ви повинні увійти або зареєструватися
А що передавати в Date of publish і де?
Це питання якраз до вас, ну чи до викладача - що саме було задумано в завданні.
Наскільки я бачу з теперішнього варіанту процедури, а також враховуючи що ви знаєте лише як виконувати завдання в циклі... - пропоную в циклі переглядати кожну стрічку вашої таблиці Books і присвоювати змінній відповідне значення колонки з таблиці.
Тепер нарешті розібрався. Працює!!! Дуже дякую усім за допомогу!!!
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;
Для відправлення відповіді ви повинні увійти або зареєструватися