RexEx en SQL ?

Résolu
schumileboss Messages postés 32 Date d'inscription dimanche 24 octobre 2004 Statut Membre Dernière intervention 23 avril 2008 - 13 nov. 2007 à 17:35
schumileboss Messages postés 32 Date d'inscription dimanche 24 octobre 2004 Statut Membre Dernière intervention 23 avril 2008 - 15 nov. 2007 à 09:48
Salut,

J'ai cherché comment faire, mais je ne trouve pas.
Je souhaite tester un champ d'une table et récupérer la chaine de mon champ mais en enlevant les caractères autres que alphanuméric et les points ".", afin de les comparer à un paramètre dans une procédure stockée.

Je voulais savoir comment je dois faire?
J'avais pensé à le faire avec des expréssions régulières, mais je ne sais pas comment mettre ça en place.

Si vous avez une une idée, un exemple ou un lien à me donner, je vous en remercie.

Mickael

6 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
14 nov. 2007 à 13:44
Salut,

C'est une nouveauté de SQL server 2005
cf le lien
http://msdn.microsoft.com/msdnmag/issues/07/02/SQLRegex/default.aspx?loc=fr

Sinon c'est possible en SQL server 2000
mais avec de grosses bidouilles et au niveau performance moins bonne.

Cf la source
http://www.codeproject.com/managedcpp/xpregex.asp

Bon courage
3
dominique.stock Messages postés 436 Date d'inscription vendredi 7 novembre 2003 Statut Membre Dernière intervention 8 octobre 2008 7
14 nov. 2007 à 11:43
Bonjour,
Peux-tu donner un exemple ?
Sinon par  une fonction si ta version SQL server le permet ...

Dom
0
schumileboss Messages postés 32 Date d'inscription dimanche 24 octobre 2004 Statut Membre Dernière intervention 23 avril 2008
14 nov. 2007 à 14:57
Merci beaucoup, effectivement c'est ce qu'il me faut.
Pour un exemple, en fait c'est dans mon where que je doit mettre une expression régulière pour récupérer par exemple un champ mais sans les espaces qu'il contien.
J'ai SQL Server 2005.

Merci.

Mickael
0
schumileboss Messages postés 32 Date d'inscription dimanche 24 octobre 2004 Statut Membre Dernière intervention 23 avril 2008
14 nov. 2007 à 15:37
Bon, j'ai fait un projet, j'ai fait mes fonctions, mais je ne peut pas le déployer sur le serveur car il me dit ceci :

Erreur : Syntaxe incorrecte vers 'EXTERNAL'. Vous devez peut-être définir le niveau de compatibilité de la base de données en cours à une valeur plus élevée pour activer cette fonctionnalité. Reportez-vous à l'aide relative de la procédure stockée sp_dbcmptlevel.

Alors j'ai cherché des infos à ce propos et j'ai trouvé qu'il faut augmenter le niveau de compatibilité de la bd.
Pour cela, il faut exécuter la ps EXEC sp_dbcmptlevel <var>DatabaseName</var>, 80 Go dans l'outil Conninfo.exe.
Mon problème est que je ne trouve pas ce dernier.

Pouvez vous m'aider svp?

Mickael
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
schumileboss Messages postés 32 Date d'inscription dimanche 24 octobre 2004 Statut Membre Dernière intervention 23 avril 2008
14 nov. 2007 à 15:51
Bon, alors en fait on peut aussi le modifier dans l'interface de sql server management studio donc le problème est résolu, maintenant je vais tester ma fonction.
Mais ils pourraient préciser quand même, j'ai perdu trop de temps pour trouver cette PS avant de voir que l'on peut le faire via sql management studio.

Merci

Mickael
0
schumileboss Messages postés 32 Date d'inscription dimanche 24 octobre 2004 Statut Membre Dernière intervention 23 avril 2008
15 nov. 2007 à 09:48
C'est bon, cela fonctionne, merci de votre aide.

Mickael
0
Rejoignez-nous