0
伊夫一個刪除一個客戶一個相當簡單的過程,它是一個封裝體內的過程。下面是程序運行並刪除客戶代碼:程序刪除只有當數據庫高於目前SYSDATE
PROCEDURE remove_customer (customer_id VARCHAR2) IS
BEGIN
DELETE FROM order_line
WHERE order_line.FK1_order_id in
(SELECT order_id FROM placed_order
WHERE placed_order.FK1_customer_id = remove_customer.customer_id
);
DELETE FROM placed_order
WHERE placed_order.FK1_customer_id = remove_customer.customer_id;
DELETE FROM customer
WHERE customer.customer_id = remove_customer.customer_id;
total_customers := total_customers - 1;
END;
我要的是隻刪除客戶如果交貨日期已經過去? 所以在上述過程中會出現if語句,我只是不確定如何在何處添加它以及如何添加它。
這將是沿
CREATE PROCEDURE remove_customertest (customer_id VARCHAR2) IS
BEGIN
IF placed_order.delivery_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 = remove_customer.customer_id
);
DELETE FROM placed_order
WHERE placed_order.FK1_customer_id = remove_customer.customer_id;
DELETE FROM customer
WHERE customer.customer_id = remove_customer.customer_id;
ELSE
DBMS_OUTPUT.PUT_LINE ('Customer currently has a order been delivered and cant be removed.');
END IF;
END;
行沒有任何一個有這個,或者如果我在右邊線有什麼建議?
感謝您的幫助,我是相當新的PL/SQL
HI感謝,我試圖代碼,它只是想出了'無效的sql語句'。我在我的問題中添加了一些代碼,但它不會運行任何想法? – 2013-05-09 10:43:45
我的壞..我剛纔講的位置和一些建議impliment這個邏輯..沒有exect代碼.. – 2013-05-09 11:04:03
它的幫助好感謝和理解 – 2013-05-09 11:33:01