現在、顧客を削除する手順は、パッケージ本体内にあるかなり単純な手順です。顧客を実行して削除する手順のコードは次のとおりです。
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にかなり慣れていません