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

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

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

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

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

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

от 25%

Подписываем

договор

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

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

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

В 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




1. Развитие речи в раннем детстве
2. на РТ Прощание с букварем подготови
3. Subject ~ зд подданный Of sturdy build ~ крепкого телосложения fleshy hooked nose ~ крючковатый нос Sleek ~ лоснящийся Exuber
4. Mil Дата рождения день месяц год Семейное положение Дети ОБРАЗОВАН
5. Организация рабочих мест
6. по теме 9 Статистика рынка труда 1 Что входит в показатель среднесписочной численности работников
7. Статья Чтение вслух как культурная традиция
8. тема на базе КТИ ТА мобильной связи
9. тема счисления hexdeciml использует 16 символов от 1 до9 иBCDEF
10. Утверждаю
11. Психологические признаки неискренности
12. е ЛИЧНОЕ ОТКРЫТОЕ ПЕРВЕНСТВО САНКТПЕТЕРБУРГА И ЛЕНИНГРАДСКОЙ ОБЛАСТИ ПО АРМЛИФТИНГУ ТЯГЕ РУЧКИ ROLLING THUND
13. Курсовая работа- Собственный капитал и его значение в деятельности банка
14. ЛЕКЦИЯ N 5 СОЦИАЛЬНАЯ СТРУКТУРА ОБЩЕСТВА СТРАТИФИКАЦИОННЫЙ АСПЕКТ Основные понятия теории стратификац
15. Структура и сущность мировозрения Мировозрение ~ это совокупность обобщенных чувствований интуиктивных
16. koobru Уте Эрхардт Хорошие девочки отправляются на небеса а плохие куда захотят или Почем
17. Сословно-представительная монархия в Западной Европе- общие черты и особенности
18. тема Этот вопрос занимает умы ученых педагогов психологов вызывая споры и разногласия
19. Маркиз де Сад
20.  Основные функции и принципы экологической политики