Bonsoir,
Je recherche à savoir comment former une expression logique dans la clause CHECK lors de la création d'une table(CREATE TABLE).
Merci d'avance
Version imprimable
Bonsoir,
Je recherche à savoir comment former une expression logique dans la clause CHECK lors de la création d'une table(CREATE TABLE).
Merci d'avance
:DCode:CREATE TABLE ... CHECK ( 1=1 )
.
Merci pour ta réponse , mais je recherchait plutot la syntaxe pour ecrire l'expression logique.Par exemple la syntaxe permettant de verifier si un attribut qui est une chaine de caractère ne posséde que des lettres.
Merci
Salut,
Code:
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 SQL> CREATE TABLE tmp_test(f1 INT, f2 VARCHAR(10) CONSTRAINT tmp_f2 CHECK(f2 LIKE 'a%')); Table créée. SQL> INSERT INTO tmp_test 2 VALUES (1, 'az00-a'); 1 ligne créée. SQL> INSERT INTO tmp_test 2 VALUES (1, 'a*99-a'); 1 ligne créée. SQL> INSERT INTO tmp_test 2 VALUES (1, 'b*99-a'); INSERT INTO tmp_test * ERREUR à la ligne 1 : ORA-02290: violation de contraintes (SCOTT.TMP_F2) de vérification SQL> INSERT INTO tmp_test 2 VALUES (1, 'b1'); INSERT INTO tmp_test * ERREUR à la ligne 1 : ORA-02290: violation de contraintes (SCOTT.TMP_F2) de vérification SQL>
Un petit tour dans la doc http://download.oracle.com/docs/cd/B....htm#sthref681
et http://download.oracle.com/docs/cd/B...2.htm#g1053592
:ccool:Code:CHECK ( decode(col1, 1, 1) BETWEEN 'A' AND 'Z' and decode(col1, 2, 1) BETWEEN 'A' AND 'Z' and ... )
.
Vous pouvez aussi utiliser une expression régulière :
Code:CHECK(regexp_like(f2, '^[[:alpha:]]+$'))
Tout d'abord merci , c'est exactement ce que je cherchais.
Maintenant j'essaie de verifier qu'une date est correcte (comprise entre un minimum et un maximum) mais je ne vois pas trop comment faire.Si quelqu'un pourrait m'aider ;
Merci
Et bien, ce n'est pas très compliqué...
Code:CHECK(MaDate BETWEEN Date_Min AND Date_Max)
je crois que tu as besoin d'un bon cours SQL.