(excepto el uso de una UDF) ¿Algún soporte REGEXP-In-SQL para DB2 9.7?Expresiones regulares en DB2 SQL
Respuesta
No hay compatibilidad incorporada para las expresiones regulares en DB2 9.7.
La única manera es usando UDF o funciones de tabla como se describe en el artículo 'OMG Ponies' agregado en el comentario.
@ dan1111: No me gusta que mi publicación se edite, especialmente si la gente no puede leer la pregunta correctamente. El PO pidió Cualquier REGEXP-In-SQL soporte para DB2 9,7
SQL no es XQuery !!!
Lo siento, no elimine el texto de mi respuesta 100% correcta. Puede agregar un comentario o escribir su propia respuesta.
Esto no es cierto. La expresión regular se admitió en DB2 9.7 a través de xQuery con la función de coincidencias: http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.xml.doc/doc/xqrfnmat. html – AngocA
Ahora sin xQuery: http://stackoverflow.com/a/38522897/1388357 –
@TannerFaulkner ya es hora. ;-) IBM siempre llega tarde agregando lo obvio. – tessus
Soy komikoni (Keisuke Konishi).
Creé la función de expresión regular (UDF) que no existe en db2. UDF utilizando SQL/XML (Xquery). Puedes instalarlo fácilmente.
lista de expresiones regulares proporcionan UDF
- REG_MATCHES proporciona la existencia de coincidencia (escalar)
- REG_REPLACE sustitución de cadenas (escalar)
- REG_COUNT número de coincidencias recuperados (Escalar)
- REG_POSITION partido de adquisición de posición (escalar)
- REG_SUBSTR consigue un emparejamiento de cadenas (escalar)
- REG_SUBSTR_TABLE lista de resultados con información de la cadena (tabla)
- REG_TOKENIZE_TABLE lista de no coincidentes información de cadena (dividida por una cadena de separación) (Tabla)
- REG_ALLTOKEN_TABLE lista de información de la cadena y la cadena coincidente desajuste (tabla)
secuencias de comandos se puede descargar desde aquí. (Lo siento en japonés)
https://www.ibm.com/developerworks/jp/data/library/db2/j_d-regularexpression/
(Inglés: Machine translation Guión: El último de una página japonesa)
Espero sus comentarios y observaciones.
La verdadera respuesta es que DB2 hace admite la expresión regular desde que se agregó PureXML (v9.7 incluido) a través de xQuery con la función de coincidencias.
Por ejemplo:
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"
Para más información:
que funciona bien, excepto para DB2 z/OS - en DB2 v10 z/OS debe utilizar PASANDO de la siguiente manera
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
Comenzando con DB2 11.1 existe soporte de expresiones regulares incorporado. Una de las nuevas funciones es REGEXP_SUBSTR
y hay algunas más.
SELECT REGEXP_SUBSTR('hello to you', '.o',1,1)
FROM sysibm.sysdummy1
- 1. Expresiones regulares de SQL Server
- 2. Servidor SQL y expresiones regulares
- 3. Expresiones regulares en servidores SQL Server?
- 4. Expresiones regulares de SQL Server en T-SQL
- 5. consulta de SQL Server con expresiones regulares?
- 6. expresiones regulares (expresiones regulares), reemplace la segunda aparición en javascript
- 7. expresiones regulares en Javascript con jQuery Contiene expresiones regulares extensión
- 8. Expresiones regulares en findstr
- 9. Expresiones regulares en C
- 10. Expresiones regulares en OCaml
- 11. expresiones regulares en Vimscript
- 12. Expresiones regulares en J2ME
- 13. Expresiones regulares en Puntuación
- 14. El uso de expresiones regulares en SQL Server
- 15. Partido hasta x expresiones regulares o y expresiones regulares
- 16. Función IsNull en DB2 SQL?
- 17. ¿Por qué las expresiones regulares se llaman expresiones "regulares"?
- 18. SQL Dump from DB2
- 19. Invertir expresiones regulares en vim
- 20. UTF expresiones regulares en Python
- 21. Expresiones regulares en C++ STL
- 22. Ruby: hexadecimal en expresiones regulares
- 23. Expresiones regulares en C: ejemplos?
- 24. Expresiones regulares en procedimientos almacenados
- 25. Expresiones regulares en SQLalchemy consultas?
- 26. Puntuacion expresiones regulares en Java
- 27. Combinando expresiones regulares en Javascript
- 28. Significado de (?) En expresiones regulares
- 29. Expresiones regulares (regex) en japonés
- 30. Operador Tilde en expresiones regulares
http://www.ibm.com/developerworks/data/library/techarticle/0301stolze/0301stolze.html –