У вас вопросы?
У нас ответы:) SamZan.net

Работа с регулярными выражениями в SQL Server

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 26.12.2024

Работа с регулярными выражениями в SQL Server

Христофоров Юрий

В SQL Server 7/2000 нет встроенной поддержки работы с регулярными выражениями. Но SQL Server похволяет работать с COM-объектами. В VBScript (библиотека vbscript.dll) есть специальный объект для работы с регулярными выражениями - RegExp.

Ниже приведен код хранимой процедуры sp_RegExpReplace, которая позволяет заменять текст, удовлетворяющий заданному регулярному выражению на другой заданный текст в строке.

Текст процедуры sp_RegExpReplace:

CREATE PROCEDURE [dbo].sp_RegExpReplace

@strIn1 varchar(8000),

@strIn2 varchar(8000),

@strPattern varchar(2000),

@strOut varchar(8000) OUT

AS

DECLARE @object int, @hr int

DECLARE @src varchar(255), @desc varchar(255)

-- создаем объект RegExp для работы с регулярными выражениями

 EXEC @hr = sp_OACreate 'VBScript.RegExp', @object OUT

 

IF (@hr <> 0) BEGIN

        EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT

        SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc

 RETURN

END

 

EXEC @hr = sp_OASetProperty @object, 'Pattern', @strPattern

IF (@hr <> 0) BEGIN

        EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT

        SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc

 RETURN @hr

END

-- будет глобальная замена

 EXEC @hr = sp_OASetProperty @object, 'Global', 1

IF (@hr <> 0) BEGIN

        EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT

        SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc

 RETURN @hr

END

-- вызов метода Replace

EXEC @hr = sp_OAMethod @object, 'Replace', @strOut OUT, @strIn1, @strIn2

IF (@hr <> 0) BEGIN

        EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT

        SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc

 RETURN @hr

END

-- удаляем объект

EXEC @hr = sp_OADestroy @object

IF (@hr <> 0) BEGIN

        EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT

        SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc

 RETURN @hr

END

RETURN 0

Необходимо учитывать, что пользователь, от имени которого будет запускаться наша процедура, должен входить в роль sysadmin (это ограничение накладывают процедуры sp_OACreate, sp_OASetProperty, sp_OAMethod, sp_OADestroy).

Протестируем процедуру sp_RegExpReplace - удалим с ее помощью из заданной строки все HTML-теги.

DECLARE @strOut varchar(8000)

EXEC sp_RegExpReplace 'Это тестовый <b>тест</b> <p> текст',

  '', '<.+?>', @strOut OUT

SELECT @strOut

GO

В результате значением переменной @strOut будет строка "Это тестовый тест текст".

Файлы SQL-скриптов прилагаются: sqlregexp.zip

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://www.activex.net.ru/




1. Сотвори всемогущею силою Твоею да отбежит от мене темный облак смущающих мя мыслей и огорчений да исчезнет
2. Прокопьевский промышленноэкономический техникум ДНЕВНИК по практике Студент ка
3. Позаботимся об экологии
4. Древние архитектурные памятники города Калининграда
5. Моя будущая жена скорее всего будет любить трагедии комедии поэзию живопись театр и музыку
6. Сутність і завдання представництва прокуратурою інтересів громадянина або держави в суді Підручники онла
7. Date- 240298 Люк МИШЕЛЬ.html
8. тематики Класс- 1 Учитель- Семенченко Т
9. бухгалтерская отчётность организации; 4 Положение по бухгалтерскому учёту 6-01 учёт основных средств; 5
10. Проблематика повести А. П. Платонова «Котлован»
11. Статья- Он должен знать, что его любят
12. Реферат- Женщина и карьера
13. педагогической деятельности
14. тема пригнічена можливий коматозний стан; діяльність серця ослаблена пульс нитковидний артеріальний тиск
15. Нормальная физиология
16. культурное и экологическое воздействие Социальнокультурное воздействие Туристы приезжающие в ту или
17. осенний период На заводах производящих сухое молока или консервы не его основе постоянно имеются некоторые
18. Лекарственное растительное сырье влияющее на периферическую нервную систему
19. Доходы и богатство в современной России
20. Взаимодействие следователя и опер