|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Jun 2006
Messaggi: 297
|
[SQLSERVER2005] Regular Expression
Ciao a tutti,
ho la necessità di fare una query che include una Regular Expression (non particolarmente complessa)su una tabella presente in SQL Server 2005. A quanto pare non si può, perlomeno non con la configurazione base di SQL Server 2005. Ho letto, in vari documenti, che posso essere incluse tramite il componente CLR del NETFRAMEWORK, ma va creato un assembly, che ad ora non sembra funzionare.. Qualcuno di voi ci ha mai sbattuto la testa? Aiuti? Grazie in anticipo
__________________
La libertà non è una "creazione dal nulla", il potere di realizzare qualcosa partendo dal niente. E' piuttosto la possibilità di scegliere valori, idee e dottrine che già esistono e che vengono riconfermati ogni giorno dalle nostre scelte, E' la libertà di impegnarci in qualcosa che già esiste. Forse è ciò che voleva dire Nietzsche quando parlava dell' "eterno ritorno dell'uguale". |
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Ciao, allora ci sono 2 strade. Se ti "accontenti" del FULL TEXT INDEX, nel senso che magari fa al caso tuo, allora e' sufficiente leggere un paio di documenti e poi procedere dato che SqlServer li supporta e anche abbastasnza bene. Se invece devi per forza usare una regular expression, allora non mi risulta che vi siano in maniera nativa. Puoi pero' creare una Funzione Custom in C#, che ben conosce le Regular Expression. Per poterla fare basta che apri Visual Studio, crei un nuovo progetto di tipo Database, aggiungi una funzione (o una stored procedure) e poi fai il deploy. Su SqlServer ti ritroverai una nuova funzione, il cui corpo non e' editabile o leggibile, ma che si potra' eseguire come tutte le altre funzioni, quindi ipotizzo per te nella clausole WHERE di qualche query. Per studiare qualche esempio cerca un'implementazione delle funzioni di gruppo custom, che devono essere fatte appunto in questo modo. Come ad esempio l'implementazione della GROUP_CONCAT, che serve per concatenare le stringhe di rercod diversi.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
|
|
|
|
|
|
#3 | ||
|
Member
Iscritto dal: Jun 2006
Messaggi: 297
|
Quote:
Quote:
Sul server dove c'è installato SQL SERVER 2005 non c'è e non posso installare Visual Studio 2005. Di conseguenza secondo te, posso installarmi Visual in locale, compilare la funzione e portarla sul server? Guarda qui http://www.codeproject.com/KB/string...select=2719744 Sto seguendo passo passo la creazione dell'ASSEMBLY, ma ho un problema con la DLL(presa dal web), provando a lanciare il comando(vedi il link) Codice:
CREATE ASSEMBLY [SqlRegEx] FROM 'C:\SqlRegEx.dll' WITH PERMISSION_SET = SAFE Codice:
CREATE ASSEMBLY for assembly 'RegEx' failed because assembly 'RegEx' is malformed or not a pure .NET assembly. Unverifiable PE Header/native stub.
__________________
La libertà non è una "creazione dal nulla", il potere di realizzare qualcosa partendo dal niente. E' piuttosto la possibilità di scegliere valori, idee e dottrine che già esistono e che vengono riconfermati ogni giorno dalle nostre scelte, E' la libertà di impegnarci in qualcosa che già esiste. Forse è ciò che voleva dire Nietzsche quando parlava dell' "eterno ritorno dell'uguale". |
||
|
|
|
|
|
#4 | ||
|
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Quote:
Devi pero' almeno installare il .net Framework sul Server. Mi sembra anche di ricordare un mezzo casino di configurazione per infomare SqlServer su quale versione del Framework si trova davanti. Quote:
Ma tutto cio' non e' necessario impararlo se il codice della funzione lo scrivi te in C#. E' sufficiente cliccare con il destro sul progetto in Visual Studio e scegliere "Deploy". Se invece come hai detto hai solo la DLL in mano perche' l'hai scaricata gia' compilata da qualche parte, allora devi copiarla sul server e seguire questa guida. Ma come detto e' una strada che non ho mai seguito, e non ti saprei aiutare.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. Ultima modifica di gugoXX : 20-03-2009 alle 12:27. |
||
|
|
|
|
|
#5 | ||
|
Member
Iscritto dal: Jun 2006
Messaggi: 297
|
Quote:
Quote:
Grazie veramente
__________________
La libertà non è una "creazione dal nulla", il potere di realizzare qualcosa partendo dal niente. E' piuttosto la possibilità di scegliere valori, idee e dottrine che già esistono e che vengono riconfermati ogni giorno dalle nostre scelte, E' la libertà di impegnarci in qualcosa che già esiste. Forse è ciò che voleva dire Nietzsche quando parlava dell' "eterno ritorno dell'uguale". |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:07.




















