Domanda

Sto avendo un problema per cui una colonna all'interno di una tabella di mine ha dati che vengono codificati utilizzando il metodo System.Xml.XmlConvert.Encode.

Ora ho bisogno di manipolare questi dati in SQL e non ho trovato un modo per duplicare il metodo System.Xml.XmlConvert.Decode.

Così ho indagato come posso usare lo spazio dei nomi System.XML all'interno di SQL per accedere a questo metodo senza dover avvolgerla all'interno di uno dei miei gruppi. È possibile? cioè come posso accedere a questo assemblaggio direttamente tramite T-SQL?

È stato utile?

Soluzione

C'è un bel paio di esempi di scrittura utilizzando .NET per SQL aggiunte. Credo che sarà necessario disporre di SQL 2005 o più recente per creare un componente aggiuntivo.

Ecco un esempio che è particolarmente utile.

Creazione di CLR SQL User Defined Function per convalidare i valori utilizzando le espressioni regolari @ MSDN

Nel tuo caso, probabilmente si vuole scrivere una funzione che prende un byte [] e restituisce una stringa (decodifica), insieme a un corrispondente funzione che prende una stringa e restituisce un byte [].

In realtà io non sono sicuro che è possibile utilizzare direttamente byte [], ma si dovrebbe essere in grado di scrivere una corrispondente funzione wrapper in SQL che può prendere una stringa esadecimale e trasformarlo in un varbinary () se ciò è necessario.

modifica

Ecco alcuni link più durevoli ad altri riferimenti che sono inclusi nel link precedente, nel caso in cui sia mai scompare.

Procedura: creare ed eseguire uno SQL CLR funzione definita dall'utente @ MSDN

attributi personalizzati per CLR Routine @ TechNet

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top