Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2011, 11h33   #1
Invité de passage
 
Homme Florentin L.
Étudiant
Inscription : janvier 2007
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme Florentin L.
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 32
Points : 3
Points : 3
Par défaut Check constraint : NOT LIKE digits

Bonjour à tous,

Je bloque sur une check constraint sur l'AS400...
J'aimerai en créer une qui n'autorise pas à encoder des chiffres.
J'ai essayé comme sur SQL Server :

nom NOT LIKE [0-9]

mais les crochets ne sont autorisés.. Et avec des parenthèses, cela ne fonctionne pas.

Quelqu'un aurait-il une idée?

Merci d'avance de votre réponse!
ospreyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2011, 11h52   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 641
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 641
Points : 2 634
Points : 2 634
bonjour,

Je ne sais pas quelle est votre OS ni sa version... mais il ne me semble pas que les expressions régulières soient supportées.

Un article intéressant à ce sujet ici par exemple :
http://www.ibm.com/developerworks/da...301stolze.html


Bref pour répondre à votre question, ceci en V5R4 fonctionne :
Code sql :
1
2
3
4
 
CREATE TABLE test_ (nom varchar(10));
 
ALTER TABLE test_ ADD constraint C1 CHECK (nom NOT LIKE '%0%' AND nom NOT LIKE '%1%');

edit : transformé le OR en AND ...
punkoff est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 31/08/2011, 15h32   #3
Invité de passage
 
Homme Florentin L.
Étudiant
Inscription : janvier 2007
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme Florentin L.
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant
Secteur : Finance

Informations forums :
Inscription : janvier 2007
Messages : 32
Points : 3
Points : 3
Citation:
Envoyé par punkoff Voir le message
bonjour,

Je ne sais pas quelle est votre OS ni sa version... mais il ne me semble pas que les expressions régulières soient supportées.

Un article intéressant à ce sujet ici par exemple :
http://www.ibm.com/developerworks/da...301stolze.html


Bref pour répondre à votre question, ceci en V5R4 fonctionne :
Code sql :
1
2
3
4
 
CREATE TABLE test_ (nom varchar(10));
 
ALTER TABLE test_ ADD constraint C1 CHECK (nom NOT LIKE '%0%' AND nom NOT LIKE '%1%');

edit : transformé le OR en AND ...
Un grand merci.. J'ai répété 9 fois l'opération pour que chaque chiffre soit interdit!
ospreyyy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 13h15   #4
Futur Membre du Club
 
Inscription : mars 2010
Messages : 32
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 32
Points : 19
Points : 19
Ce serait plus court avec un translate, mais peut-être pas plus rapide.

champ = translate (champ, '**********', '0123456789')
allweneed est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h36.


 
 
 
 
Partenaires

Hébergement Web