Language: Highlight Mode: PLSQL Last Modified: March 01st, 2009
REM
REM CREATE stored functions required FOR the applications discussed IN
REM "Developing Oracle Forms Applications."
REM
PROMPT
PROMPT CREATE the functions used BY the applicationS.
PROMPT
CREATEORREPLACEFUNCTION Days_Between (first_dt DATE,
second_dt DATE)RETURNNUMBERIS
dt_one NUMBER;
dt_two NUMBER;BEGIN
dt_one :=TO_NUMBER(TO_CHAR(first_dt,'DDD'));
dt_two :=TO_NUMBER(TO_CHAR(second_dt,'DDD'));RETURN(dt_two - dt_one);END Days_Between;/CREATEORREPLACEFUNCTION Compute_Movie_Revenue (from_dt DATE,
to_dt DATE,
movie_id NUMBER)RETURNNUMBERIS
days NUMBER;
revenue NUMBER:=0;CURSOR movie_rentals ISSELECT RETURN_DT, RENT_DT, DAILY_RATE
FROM RENTALS
WHERE RENT_DT >= from_dt AND
RETURN_DT <= to_dt AND
RENTALS.TAPE_ID IN(SELECT TAPES.TAPE_ID
FROM TAPES
WHERE TAPES.MOVIE_ID = movie_id);BEGINFOR rental IN movie_rentals LOOP
days := Days_Between(rental.RENT_DT, rental.RETURN_DT);
revenue := revenue + days * rental.DAILY_RATE;ENDLOOP;RETURN revenue;EXCEPTIONWHENOTHERSTHEN
RAISE_APPLICATION_ERROR(-20002,'Movie revenue cannot be computed.');END Compute_Movie_Revenue;/CREATEORREPLACEFUNCTION Compute_Customer_Revenue (from_dt DATE,
to_dt DATE,
customer_id NUMBER)RETURNNUMBERIS
days NUMBER;
revenue NUMBER:=0;CURSOR customer_rentals ISSELECT RETURN_DT, RENT_DT, DAILY_RATE
FROM RENTALS
WHERE RENT_DT >= from_dt AND
RETURN_DT <= to_dt AND
RENTALS.CUSTOMER_ID = customer_id;BEGINFOR rental IN customer_rentals LOOP
days := Days_Between(rental.RETURN_DT, rental.RENT_DT);
revenue := revenue + days * rental.DAILY_RATE;ENDLOOP;RETURN revenue;EXCEPTIONWHENOTHERSTHEN
RAISE_APPLICATION_ERROR(-20001,
Customer revenue cannot be computed.');
END Compute_Customer_Revenue;
/
CREATE OR REPLACE FUNCTION Get_Sequence_Id RETURN NUMBER IS
seq_id NUMBER;
BEGIN
SELECT MRD_SEQ.NEXTVAL
INTO seq_id
FROM DUAL;
RETURN seq_id;
END;
/
SQL University.net courses meet the most demanding needs of the business world for advanced education
in a cost-effective manner. SQL University.net courses are available immediately for IT professionals
and can be taken without disruption of your workplace schedule or processes.
Compared to traditional travel-based training, SQL University.net saves time and valuable corporate
resources, allowing companies to do more with less. That's our mission, and that's what we deliver.