Bonjour,
Existe-t-il en PL/SQL un moyen des faire des assertions tel que cela se fait en C++ par exemple ?
Merci pour vos réponses.
Bonjour,
Existe-t-il en PL/SQL un moyen des faire des assertions tel que cela se fait en C++ par exemple ?
Merci pour vos réponses.
C'est quoi une assertion ?
More Code : More Bugs. Less Code : Less Bugs
Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP
Une assertion, cela revient à tester une condition et, selon le résultat vrai ou faux, interrompre le programme ou bien émettre un signalement.
Par exemple : "assert(var1 = var2);"
Les assertions sont activées la plupart du temps en phase de développement, mais désactivé une fois l'application livrée chez le client (car ça la ralentit).
Cela existe en php, c++, ..., mais je ne connais pas l'équivalent en PL/SQL.
Cela ne me dit rien, mais tu pourrais arriver à un résultat quasi similaire avec la compilation conditionnelle, tu trouveras plus d'info ici
Oui mais en PL/SQL et avec un package de procédure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123 CREATE OR REPLACE PACKAGE assert IS PROCEDURE istrue ( condition_in IN BOOLEAN, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ); PROCEDURE isnotnull ( value_in IN VARCHAR2, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ); PROCEDURE isnotnull ( value_in IN DATE, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ); PROCEDURE isnotnull ( value_in IN NUMBER, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ); PROCEDURE isnotnull ( value_in IN BOOLEAN, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ); END assert; / CREATE OR REPLACE PACKAGE BODY assert IS PROCEDURE istrue ( condition_in IN BOOLEAN, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ) IS BEGIN IF NOT condition_in OR condition_in IS NULL THEN pl ('Assertion Failure!'); pl (message_in); IF raise_exception_in THEN EXECUTE IMMEDIATE 'BEGIN RAISE ' || exception_in || '; END;'; END IF; END IF; END istrue; PROCEDURE isnotnull ( value_in IN VARCHAR2, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ) IS BEGIN istrue (value_in IS NOT NULL, message_in, raise_exception_in, exception_in ); END; PROCEDURE isnotnull ( value_in IN DATE, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ) IS BEGIN istrue (value_in IS NOT NULL, message_in, raise_exception_in, exception_in ); END; PROCEDURE isnotnull ( value_in IN NUMBER, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ) IS BEGIN istrue (value_in IS NOT NULL, message_in, raise_exception_in, exception_in ); END; PROCEDURE isnotnull ( value_in IN BOOLEAN, message_in IN VARCHAR2, raise_exception_in IN BOOLEAN := TRUE, exception_in IN VARCHAR2 := 'VALUE_ERROR' ) IS BEGIN istrue (value_in IS NOT NULL, message_in, raise_exception_in, exception_in ); END; END assert; /
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager