2016-11-23 3 views
-1

私は顧客に関する情報を含む2つのテーブルを持っています。私はストアドプロシージャを作成しようとしている3つのパラメータを受け取り、それらのパラメータに一致するレコードを削除します。パラメータを受け入れ、対応するレコードを削除できるストアドプロシージャを作成する方法?

はここ

CREATE OR REPLACE PROCEDURE DELETE_CUSTOMER(
              customer_id_arg IN DECIMAL, 
              first_name_arg  IN VARCHAR, 
              last_name_arg  IN VARCHAR 
              ) IS 
BEGIN 
    DELETE FROM CUSTOMER 
      WHERE customer_id IN (SELECT customer_last 
            FROM Customer 
           WHERE customer_id = customer_id_arg); 
END; 

これまでのところ、私が持っているものだ誰かが私が間違っているのものを私に説明してくださいことはできますか?

+1

どのような問題があるようですか? – sagi

+1

どのdbms?何が問題なのですか?あなたは何かエラーがありますか? – Aleksej

+0

すべての特定のDBMSタグを削除しました。実際に使用しているものを自由に追加してください。 –

答えて

0

あなたの問題は、この行である:

DELETE FROM CUSTOMER customer_id IN (SELECT customer_last ... 

あなたが最後の名前の結果セットのIDをチェックします。これらは決して一致しません。

Delete From CUSTOMER Where customer_id = customer_id_arg 

これは、Customer_IDが一意であることを前提としています。ユニークでない場合は、次の名前も含める必要があります。

Delete From CUSTOMER 
Where customer_id = customer_id_arg 
    and customer_last = last_name_arg 
    and customer_first = first_name_arg 
関連する問題