2017-10-20 111 views
-3

創建名爲biufer_customer的觸發器,該觸發器在插入或更新customer表中的列passwd之前啓動。觸發器應驗證密碼正好是六個字符,不多也不少。除非此要求得到滿足,否則觸發器應停止交易並確認發生此錯誤。PL/SQL創建觸發器

create or replace trigger biufer_customer 
before insert or update 
of passwd 
on customer 
for each row 
when (new.passwd <> 6) 
begin 
    raise_application_error(-20001,'Wrong password!'); 
end; 
/
+1

你是什麼實際問題?我們不只是爲你做你的任務。這是什麼代碼?你嘗試過運行它嗎?它是否導致錯誤?那是什麼? –

+0

什麼是特殊字符,即非ASCII字符?很多時候建議您使用特殊字符作爲密碼。你可以以不同的方式計算,請參閱[LENGTH](http://docs.oracle.com/database/121/SQLRF/functions100.htm#SQLRF00658) –

+0

我錯過了長度函數,現在的代碼工作:) – Skorpan

回答

1

您應該使用LENGTH功能

... 
when(length(new.passwd) <> 6) 
... 
+0

我錯過了長度函數。非常感謝:) – Skorpan

+0

@Skorpan歡迎您:) –