2017-10-20 5 views
-3

Erstellen Sie einen Trigger namens biufer_customer, der vor dem Einfügen oder Aktualisieren der Spalte passwd in der Tabelle customer beginnt. Der Auslöser muss sicherstellen, dass das Passwort genau sechs Zeichen lang ist, nicht mehr und nicht weniger. Wenn diese Bedingung nicht erfüllt ist, muss der Auslöser die Transaktion stoppen und bestätigen, dass dieser Fehler aufgetreten ist.PL/SQL create trigger

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

Was ist Ihre eigentliche Frage? Wir werden nicht nur deinen Auftrag für dich erledigen. Was ist dieser Code? Hast du es versucht? Hat es einen Fehler verursacht? Was war das? –

+0

Was ist mit Sonderzeichen, d. H. Nicht-ASCII-Zeichen? Oft wird empfohlen, Sonderzeichen für Ihr Passwort zu verwenden. Du kannst anders zählen, siehe [LÄNGE] (http://docs.oracle.com/database/121/SQLRF/functions100.htm#SQLRF00658) –

+0

Ich hatte die Längenfunktion verpasst, jetzt funktioniert der Code:) – Skorpan

Antwort

1

sollten Sie verwenden die Funktion LENGTH

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

hatte ich verpasst die Längenfunktion. Vielen Dank:) – Skorpan

+0

@Skorpan Sie sind herzlich willkommen :) –