Chapter 7 A Simple Case Study Pages 166-67 CREATE TABLE prices ( product_code VARCHAR2(10) NOT NULL , date_from DATE NOT NULL , date_to DATE , price NUMBER NOT NULL , CONSTRAINT prices_date_range CHECK (date_from < date_to) ); CREATE OR REPLACE FUNCTION price_at_date ( p_code IN price.product_code%TYPE , p_when IN DATE ) RETURNS NUMBER IS p_price NUMBER; BEGIN SELECT price INTO p_price FROM prices WHERE product_code = p_code AND date_from >= p_when AND date_to <= NVL(p_when, TO_DATE('.1-DEC-4712'. 'DD-MON-YYYY'. RETURN p_price; EXCEPTION WHEN no_data_found THEN RETURN 0; END price_at_date;