Je souhaite écrire une exception pour la colonne Check
. Si 'Ok' ou 'Pas Ok' n'a pas été entré, je souhaite déclencher une erreur d'application. Comment pourrais-je écrire cela?Je ne sais pas comment exprimer l'exception plsql
-3
A
Répondre
0
Ce
est le moyen le plus simple de soulever une exception sur mesure PL/SQL:
begin
if p_check not in ('Ok', 'Not Ok') then
raise_application_error(-20999,
'Invalid value for CHECK '|| p_check);
end if;
....
numéros pour les exceptions définies par l'utilisateur doit être comprise entre -20999 à -20000. Incidemment, vous décrivez check
comme une "colonne". Les exceptions PL/SQL sont pour les variables et les paramètres. Si vous voulez réellement valider une colonne de table, vous avez besoin d'une contrainte de vérification:
alter table whatever
add constraint col23_ck
check (col23 in ('Ok', 'Not Ok'));
0
Quelque chose comme ce qui suit?
ALTER TABLE [TableName]
ADD CONSTRAINT [CheckName] CHECK (Check IN ('Ok', 'Not Ok'));
Cela soulèvera une erreur DB si une autre valeur est entrée dans la colonne,
Plus d'informations ici: https://www.w3schools.com/sql/sql_check.asp
Quels ont essayé jusqu'à présent? – Core972