「PL/SQL: ステートメントが無視されました」というエラーが表示される手順があります。このメッセージは少し曖昧で、プロシージャがコンパイルされない理由がわかりません。手順は、顧客の配送日が SYSDATE より前であるかどうかをチェックし、それが削除されているかどうかを確認し、そうでない場合は「顧客を削除できません」と出力するだけです。
手順のコードは次のとおりです。
CREATE PROCEDURE remove_customer (customer_id VARCHAR2) IS
declare
ordersCount pls_integer;
BEGIN
select count(*) into ordersCount
from placed_orders
where fk1_customer_id = remove_customer.customer_id
and delivery_date < sysdate;
if ordersCount = 0 then
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;
total_customers := total_customers - 1;
ELSE
DBMS_OUTPUT.PUT_LINE 'Customer currently has a order been delivered';
END IF;
END;
また、エラー メッセージは PLS-00103: Encountered the symbol "DECLARE" を指定しています。
アドバイスをありがとう。