Red de conocimiento informático - Problemas con los teléfonos móviles - Expresiones regulares y consultas de agrupación en sqlserver

Expresiones regulares y consultas de agrupación en sqlserver

Utilice vbscript o ensamblador frameword para agregar una función de expresión regular a la base de datos SqlServer para satisfacer sus necesidades.

Función Vbscript (requiere la biblioteca vbscript en el entorno de ejecución SqlServer)

Crear función [dbo]. [RegexMatchFirst]

(

@ texto fuente, -cadena original

@ regexpvarchar (1000), -expresión regular

@ globalbit = 1, - ¿es un reemplazo global?

@ ignorar caso bit = 0 - ¿se ignora caso

)

Devuelve varchar(1000) para

inicio

declarar @hr entero

declarar @objRegExp entero

declarar @objMatch INT

declarar @matchcount INT

Declarar @command varchar(50)

declarar @result varchar(5000)

exec @hr = sp_OACreate 'VBScript.

RegExp ', salida @objRegExp

IF @ hr & lt& gt0 start

exec @hr = sp_OADestroy @objRegExp

Devolver nulo

end

exec @HR = sp_oaset propiedad @objRegExp, 'Pattern', @regexp

IF @hr & lt& gt0 start

exec @hr = sp_OADestroy @ objRegExp

Retorno nulo

Fin

exec @HR = propiedad sp_oaset @objRegExp, 'Global', @global

IF @ hr & lt& gt0 start

exec @hr = sp_OADestroy @objRegExp

return null

end

exec @ HR = propiedad sp_oaset @objRegExp , 'IgnoreCase', @ignoreCase

IF @hr & lt& gt0 start

exec @hr = sp_OADestroy @objRegExp

return null

END

exec @hr = sp_OAMethod @objRegExp, 'ejecutar', @objmatch SALIDA, @source

IF @hr & lt& gt0 INICIO

exec @ hr = sp_OADestroy @objRegExp

Devolver nulo

Fin

EXEC @HR = sp_OAGetProperty@obj coincidencia, 'cuenta', @matchcount OUT

IF @hr & lt& gt0 o @objmatch = 0 start

exec @hr = sp_OADestroy @objRegExp

Devolver nulo

Fin

set @command = 'elemento(0). "valor"

EXEC @HR = sp_OAGetProperty @obj match, @command, @result OUT

exec @hr = sp_OADestroy @objRegExp

IF @ hr & lt& gt0Inicio

Devolver nulo

Fin

Devolver @result

Fin

Ensamblaje del tiempo de ejecución del marco:

Abra Microsoft Visual Studio, cree un proyecto de base de datos SQLServer, cree una función de coincidencia de expresiones regulares en el proyecto de acuerdo con el patrón SqlServer y luego compílelo e impleméntelo en su base de datos SqlServer.

En este punto, al actualizar la Programabilidad de la base de datos -> Funciones -> Funciones de valor escalar, verá la función personalizada que creó en Microsoft Visual Studio.