1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
CREATE TABLE toto(ID NUMBER, nom VARCHAR2(100))
CREATE OR REPLACE TRIGGER test_trg
BEFORE INSERT OR UPDATE
ON toto
FOR EACH ROW
DECLARE
exception_ok EXCEPTION;
var_ok NUMBER;
BEGIN
IF :NEW.ID < 0 THEN
raise_application_error ( num => -20000
,msg => 'ça marche pas parceque l''ID est négatif' );
ELSE
DECLARE
err BOOLEAN := FALSE;
BEGIN
FOR i IN 1 .. LENGTH ( :NEW.nom )
LOOP
IF ascii ( substr ( :NEW.nom, i, 1 )) BETWEEN 48 AND 58 -- 0 et 9
THEN
err := TRUE;
END IF;
END LOOP;
IF err = TRUE THEN
raise_application_error ( num => -20000
,msg => 'ça marche pas parceque le nom est faux'
);
END IF;
END;
END IF;
END;
/ |
Partager