2

「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" を指定しています。

アドバイスをありがとう。

4

1 に答える 1