Bonjour,
Est-ce que quelqu’un a un exemple à me donner de l’utilisation d’une expression régulière en SQL sur IBM i ?
Merci d’avance.
Olivier.
Voici un exemple que j’ai utilisé récemment :
Select Substr( a.pàdse, 4, 10) "Identifiant connexion",
b.GROUP_PROFILE_NAME "Groupe(s)",
Substr( a.pàdse, 116, 1) "Code société",
Substr( a.pàdse, 150, 2) "Agence commerciale",
Substr( a.pàdse, 220, 2) "Agence exploitation",
Substr( a.pàdse, 17, 27) "Nom",
Substr( a.pàdse, 394, 3) "Numéro Profil SESAME",
b.Previous_signon "Dernière connexion",
substr( c.k00001, 4, 6) "Option Sesame"
From Qs36f."PARAM.à£" a left join QSYS2.USER_INFO b on Substr( a.pàdse, 4, 10) = b.Authorization_Name Left join Qs36f."à£.ALI" c On substr( c.k00001, 1, 3) = Substr( a.pàdse, 394, 3)
Where Substr( a.pàdse, 1, 3) = 'ALI'
And REGEXP_LIKE( Upper( Substr( a.pàdse, 17, 27)), 'ABDELALI', 'i')
Dans le cas présent, on recherche la chaîne ABDELALI dans a.pàdse entre la position 17 sur une longueur de 27 caractères.
On peu évidemment faire :
REGEXP_LIKE( Upper( Substr( a.pàdse, 17, 27)), '^ABDELALI', 'i')
Et dans ce cas, la chaîne ABDELALI sera recherchée en position 17 de a.pàdse puisque ^ indique une recherche en début de ligne.
Il y a beaucoup à dire sur les expressions régulières en SQL sur IBM i, tous les détails sur cette page :
https://www.ibm.com/support/knowledgecenter/search/regexp?scope=ssw_ibm_i_74