Chcete vyvolat výjimku (která by zabránila úspěšnému vložení)? Nebo chcete povolit vložení, aby bylo úspěšné a zapsat řetězec do dbms_output
pufr, který může nebo nemusí existovat a může nebo nemusí být ukázán člověku, který spouští vložku?
V obou případech budete chtít, aby se jednalo o spouštěč na úrovni řádku, nikoli spouštěč na úrovni příkazu, takže budete muset přidat for each row
doložka.
CREATE OR REPLACE TRIGGER person_id_trigg
AFTER INSERT
ON person
FOR EACH ROW
Pokud chcete vyvolat výjimku
BEGIN
IF( length( :new.id ) <> 11 )
THEN
RAISE_APPLICATION_ERROR( -20001,
'The new ID value must have a length of 11' );
END IF;
END;
Pokud chcete potenciálně tisknout výstup, ale povolte insert
uspět
BEGIN
IF( length( :new.id ) <> 11 )
THEN
dbms_output.put_line( 'The new ID value must have a length of 11' );
END IF;
END;
Samozřejmě, ve skutečnosti byste nikdy nepoužili spoušť pro takové věci. V reálném světě byste použili omezení.