我想創建這個存儲過程,應該把客戶和電子郵件地址作爲輸入。然後更新該客戶的電子郵件地址。如果新電子郵件地址與舊電子郵件地址相同,則應引發異常。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: 遇到下列其中一個 時遇到符號「文件結束」:(如果啓動case聲明結束異常退出跳轉 循環mod null空格附註提高返回select更新而與< <繼續關閉當前刪除獲取鎖芯打開 回滾保存點設置SQL執行提交FORALL合流管清洗
刪除'Declare' – Utsav