このストアド・プロシージャを作成しようとしています。このストアド・プロシージャには、顧客名と電子メール・アドレスを入力する必要があります。その顧客の電子メールアドレスを更新します。新しい電子メールアドレスが古いものと同じ場合、例外を発生させる必要があります。ユーザー定義例外付きのoracle更新ストアド・プロシージャ
CREATE OR REPLACE PROCEDURE UpdateEmail
(CUSTOMERID IN CUSTOMER.CUSTOMERNO%TYPE,
N_EMAIL IN CUSTOMER.EMAIL%TYPE)
IS
DECLARE
e_same EXCEPTION;
V_ROWCOUNT NUMBER;
BEGIN
SELECT COUNT(EMAIL)
INTO V_ROWCOUNT
FROM [email protected]
WHERE CUSTOMER.EMAIL = N_EMAIL
AND CUSTOMER.CUSTOMERNO = CUSTOMERID;
IF V_ROWCOUNT > 0
THEN RAISE e_same;
ELSE
UPDATE CUSTOMER
SET EMAIL = N_EMAIL
WHERE CUSTOMER.CUSTOMERNO = CUSTOMERID;
END IF;
EXCEPTION
WHEN e_same THEN dbms_output.put_line ('email address exist');
END;
/
しかし、それは投げている間違いです。私が正しいことをしているかどうかはわかりません。私は最新のOracle SQL Developerを使用しています。
エラー(6,1):PLS-00103:次の いずれかを期待するとき、記号「DECLARE」を発生しました:関数プラグマ手順サブタイプの種類を開始 電流 カーソル削除記号「始まる前に、外部の言語が存在します"は" DECLARE "の代わりに でした。
エラー(28,4):PLS-00103: のいずれかを予期しているときにシンボル "end-of-file"が検出されました:(ループモードのヌルプラグを返す場合は、 < <が近い現在の削除はロック挿入オープン ロールバックセーブポイントセットはFORALLパイプパージ
「Declare」を削除してください – Utsav