(autre que d'utiliser un UDF) toute prise en charge de REGEXP-IN-SQL pour DB2 9.7? P>
5 Réponses :
Il n'y a pas de support intégré pour les expressions régulières dans DB2 9.7. P>
Le seul moyen utilise des fonctions UDF ou de table comme décrit dans l'article 'OMG Poneys' ajouté dans le commentaire. P>
@ Dan1111: Je n'apprécie pas mon message édité, surtout si les gens ne peuvent pas lire correctement la question. L'OP a demandé tout regexp-in- SQL n'est pas XQuery !!! p>
Désolé, ne supprimez pas le texte de ma réponse correcte de 100%. Vous pouvez ajouter un commentaire ou écrire votre propre réponse. P>
Ce n'est pas vrai. L'expression régulière a été prise en charge dans DB2 9.7 via XQuery avec la fonction correspondante: publiib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/...
@Tannerfaulkner Il est temps. ;-) IBM est toujours en retard avec l'ajout de l'évidence.
Je suis Komikoni (Keisuke Konishi). P>
J'ai créé la fonction d'expression régulière (UDF) qui n'existe pas dans DB2. L'UDF utilisant le SQL / XML (XQuery). Vous pouvez facilement installer. P>
Liste des expressions régulières fournit UDF p>
Les scripts peuvent être téléchargés à partir d'ici. (Désolé en japonais) p>
https://www.ibm.com/developerworks / JP / Data / Bibliothèque / DB2 / J_D-REGULAREXPRESSION / P>
(Anglais: Traduction de la machine script: la dernière d'une page japonaise) p>
J'attends vos commentaires et commentaires avec impatience. P>
La réponse réelle est que db2 est em> expression régulière puisque PureXML a été ajouté (V9.7 incluse) via XQuery avec la fonction de correspondance. Par exemple: P> db2 "with val as (
select t.text
from texts t
where xmlcast(xmlquery('fn:matches(\$TEXT,''^[A-Za-z 0-9]*$'')') as integer) = 0
)
select * from val"
qui fonctionne bien, à l'exception de DB2 Z / OS - dans DB2 V10 Z / OS, vous devez utiliser le passage comme suit
with val as (
select t.text
from texts t
where xmlcast(xmlquery('fn:matches($v,"^[A-Za-z 0-9]*$")'
PASSING t.text as "v" ) as integer) = 0
)
select * from val
Démarrage de DB2 11.1 Il est assisté de regex intégré. Une des nouvelles fonctions est regexp_substr code> et il y en a d'autres.
SELECT REGEXP_SUBSTR('hello to you', '.o',1,1)
FROM sysibm.sysdummy1
ibm.com/developerworks/data/Library/techarticule/0301Stolze/ ...