2017-10-20 12 views
-3

Créez un déclencheur appelé biufer_customer qui démarre avant l'insertion ou la mise à jour du mot de passe de colonne dans la table client. Le déclencheur doit vérifier que le mot de passe a exactement six caractères, ni plus, ni moins. À moins que cette exigence ne soit remplie, le déclencheur doit arrêter la transaction et confirmer que cette erreur s'est produite.Déclencheur de création 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

Quelle est votre question réelle? Nous n'allons pas simplement faire votre mission pour vous. Quel est ce code? Avez-vous essayé de l'exécuter? Cela a-t-il causé une erreur? Ca c'était quoi? –

+0

Qu'en est-il des caractères spéciaux, c'est-à-dire des caractères non-ASCII? Plusieurs fois, il est conseillé d'utiliser des caractères spéciaux pour votre mot de passe. Vous pouvez compter différemment, voir [LONGUEUR] (http://docs.oracle.com/database/121/SQLRF/functions100.htm#SQLRF00658) –

+0

J'avais manqué la fonction de longueur, maintenant le code fonctionne:) – Skorpan

Répondre

1

Vous devez utiliser la fonction LENGTH

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

J'avais manqué la fonction de longueur. Merci beaucoup:) – Skorpan

+0

@Skorpan vous êtes les bienvenus :) –