Welcome to Sign in | Help

Re: Cautare full text contains(Name, '"n*"') intoarce si numere

  •  06-23-2008, 7:44 AM

    Re: Cautare full text contains(Name, '"n*"') intoarce si numere

    Daca am inteles bine tu vrei sa afisezi toate numele care incep cu n si nu contin caractere numerice .In acest caz patternul asta de regexp e ce -ti trebuie

    "^n([a-z]|[A-Z])+"

    Din ceaa ce stiu eu sql2005 nu permite sa specifici regexpuri in interogari.

    O solutie mai complicata ar fi sa-ti scrii un functie clr in care sa folosesti regexp iar apoi sa faci deploymentul acestei unctii pe sql server.

    Uite aici o clasa dot net care contine o asemenea functie

    using System;

    using System.Collections.Generic;

    using System.Text.RegularExpressions;

    using System.Data;

    using System.Data.Sql ;

    using Microsoft.SqlServer.Server ;

    using System.Data.SqlTypes ;

     

     

    public class regexpuri

    {

    [Microsoft.SqlServer.Server.SqlFunction]

    public static bool potrivire(string text)

    {

    return Regex.IsMatch(text, "^n([a-z]|[A-Z])+");

    }

    }

    Compilezi dll -ul asta apoi faci pasii:

    1 enable clr execution

    sp_configure 'clr enabled', 1

    go

    reconfigure

    go

    2

    CREATE ASSEMBLY regexpuri from 'calea catre dll\regexpuri.dll' WITH PERMISSION_SET = SAFE

    3

    create function match (@text as nvarchar(MAX) )returns bit

    as external name regexpuri.regexpuri.potrivire

    4 testezi functia

    SELECT [numele bazei de date in care ai creat functia assmbly].[dbo].[match] (

    'naaaa')


    Secolul XXI ori va fi religios ori nu va fi deloc
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems