Referat.me

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

Вид работы: статья

Рубрика: Информатика и программирование

Размер файла: 13.66 Kb

Скачать файл: referat.me-139016.docx

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

Работа с регулярными выражениями в 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

Похожие работы

  • Методика развертывания Windows Compute Cluster Server 2003

    Программное обеспечение Windows Compute Cluster Server (WCCS) 2003 позволяет создать экономически эффективное и мощное решение для высокопроизводительных вычислений, которое функционирует на стандартных компьютерах с архитектурой х64.

  • Разработка сложных web-проектов с использованием Microsoft Commerce Server 2000

    Знакомство с Microsoft Commerce Server. Построение архитектуры приложения. Дополнительные инструменты Commerce Server 2000.

  • Вимоги до апаратного забезпечення ОС Win95/94/2000/Me/XP

    Міністерство освіти і науки України Технічний коледж ТДТУ Реферат тему: “Вимоги до апаратного забезпечення ОС Win95/94/2000/Me/XP” Пiдготував студент

  • LAN Server 4.0

    Общая характеристика. Управление сервером LAN Server 4.0. Совместимость с NetWare.

  • Wintermals Administrator's Pak

    Наш сегодняшний рассказ - о наборе утилит, которые помогают решать весьма специфические задачи - Winternals Administrator's Pak 4.1. Инструменты, входящие в Winternals Administrator's Pak, помогут вам реанимировать Windows-системы.

  • Проверка непротиворечивости исходных описаний конечных автоматов

    Сегодня сформированы практические потребности и имеются все условия, чтобы абстрактная теория конечных автоматов (КА) заняла достойное место в автоматизированном проектировании.

  • Інсталяція операційної системи на прикладі Microsoft Windows Server 2003 та Linux Ubuntu

    Ubuntu — операційна система для робочих станцій, серверів. Короткі теоретичні відомості операційної системи Microsoft Windows Server 2003 та Linux Ubuntu. Встановлення операційної системи Microsoft Windows Server 2003 та Linux Ubuntu на віртуальну машину.

  • Рассылка

    Описание возможности приложения. Подписка на рассылку, хранение данных. Файл ras.asp, файл ras_A.asp, файл ras_B, файл ras_C. Возможности программирования на языке ASP, который позволяет обрабатывать данные на стороне сервера. Регистрация рассылки.

  • Языки серверных скриптов

    В последнее время Web-узлы перестают быть просто набором страниц и картинок. Все чаще создаются узлы, которые взаимодействуют с посетителем, выполняют какие-то действия, собирают данные, ведут подсчеты, самонастраиваются под предпочтения посетителя.

  • Регулярные выражения в perl

    Регулярные выражения являются наиболее сложной темой практически для любого программиста: как для новичка, только что начавшего изучать perl, так и для опытного программиста, ранее не встречавшегося с регулярными выражениями.