Transact SQL Script: fn_RegExp.SQL
questions? mailto:info@itrain.de
Download SQL Script
Dieses Script dient nur Demonstrationszwecken. Verwendung des Scripts erfolgt auf eigene Gefahr.
IF OBJECT_ID('dbo.fn_TestRegExp') IS NOT NULL DROP FUNCTION dbo.fn_TestRegExp GO CREATE FUNCTION fn_TestRegExp(@wert varchar(4000), @muster varchar(255)) RETURNS int AS -- Prüft die Zeichenkette Wert mit Hilfe eines regulären Ausdrucks auf Muster -- Gibt 1 zurück, wenn Übereinstimmung gefunden wird, 0 wenn keine Übereinstimmung -- Sonstige Werte: Fehlercode -- SQL Server 2000 BEGIN DECLARE @ret int DECLARE @regexp int DECLARE @result int -- Hilfsvariablen zur Fehlerbehandlung DECLARE @quelle varchar(255) DECLARE @beschreibung varchar(255) -- Erzeugen eines Regular Expression Objekts EXEC @ret = sp_OACreate 'VBScript.RegExp', @regexp OUT IF @ret <> 0 RETURN @ret -- Setzen des Suchmusters EXEC @ret = sp_OASetProperty @regexp, 'Pattern', @muster IF @ret <> 0 RETURN @ret -- Angegebene Zeichenkette mit Muster prüfen EXEC @ret = sp_OAMethod @regexp, 'Test', @result OUTPUT, @wert IF @ret <> 0 RETURN @ret EXEC @ret = sp_OADestroy @regexp IF @ret <> 0 RETURN @ret RETURN @result END GO -- Beispielaufruf: SELECT * FROM northwind..products WHERE dbo.fn_testRegExp(RTRIM(quantityperunit), '(oz|ml)\s*(tins|bottles)$') = 1
|