Procedure To Delete Only If Database Higher Then Sysdate
Ive currently a procedure that deletes a customer a fairly simple procedure that's inside a package body. Here is the code for the procedure that runs and deletes the customer: PRO
Solution 1:
this condition you can add in the starting of the procedure as follow -
PROCEDURE Remove_Customer(Customer_Id VARCHAR2) IS
l_Order_Date DATE;
BEGIN
BEGIN
SELECT MAX(Delivery_Date)
INTO l_Order_Date
FROM Placed_Order
WHERE Placed_Order.Fk1_Customer_Id = Customer_Id;
EXCEPTION
WHEN OTHERS THEN
l_Order_Date := SYSDATE - 1;
END;
IF l_Order_Date < SYSDATE THEN
DELETE FROM Order_Line
WHERE Order_Line.Fk1_Order_Id IN
(SELECT Order_Id
FROM Placed_Order
WHERE Placed_Order.Fk1_Customer_Id = Customer_Id);
DELETE FROM Placed_Order
WHERE Placed_Order.Fk1_Customer_Id = Customer_Id;
DELETE FROM Customer WHERE Customer.Customer_Id = Customer_Id;
--Total_Customers := Total_Customers - 1; -- is it a global variable in the package?
ELSE
Dbms_Output.Put_Line('Customer currently has a order been delivered');
END IF;
END;
Post a Comment for "Procedure To Delete Only If Database Higher Then Sysdate"