ПЕРЕЛІК ДИСЦИПЛІН:
  • Адміністративне право
  • Арбітражний процес
  • Архітектура
  • Астрологія
  • Астрономія
  • Банківська справа
  • Безпека життєдіяльності
  • Біографії
  • Біологія
  • Біологія і хімія
  • Ботаніка та сільське гос-во
  • Бухгалтерський облік і аудит
  • Валютні відносини
  • Ветеринарія
  • Військова кафедра
  • Географія
  • Геодезія
  • Геологія
  • Етика
  • Держава і право
  • Цивільне право і процес
  • Діловодство
  • Гроші та кредит
  • Природничі науки
  • Журналістика
  • Екологія
  • Видавнича справа та поліграфія
  • Інвестиції
  • Іноземна мова
  • Інформатика
  • Інформатика, програмування
  • Юрист по наследству
  • Історичні особистості
  • Історія
  • Історія техніки
  • Кибернетика
  • Комунікації і зв'язок
  • Комп'ютерні науки
  • Косметологія
  • Короткий зміст творів
  • Криміналістика
  • Кримінологія
  • Криптология
  • Кулінарія
  • Культура і мистецтво
  • Культурологія
  • Російська література
  • Література і російська мова
  • Логіка
  • Логістика
  • Маркетинг
  • Математика
  • Медицина, здоров'я
  • Медичні науки
  • Міжнародне публічне право
  • Міжнародне приватне право
  • Міжнародні відносини
  • Менеджмент
  • Металургія
  • Москвоведение
  • Мовознавство
  • Музика
  • Муніципальне право
  • Податки, оподаткування
  •  
    Бесплатные рефераты
     

     

     

     

     

     

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

     

    Інформатика, програмування

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

    текст ',

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

    SELECT @ strOut

    GO

    У результаті значенням змінної @ strOut буде рядок "Це тестовий тест текст".

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

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

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

         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status