Question

Je rencontre un problème dans lequel une colonne dans une table de la mine a des données qui est codé en utilisant la méthode de System.Xml.XmlConvert.Encode.

Maintenant, je dois manipuler ces données dans SQL et n'ont pas trouvé un moyen de dupliquer la méthode System.Xml.XmlConvert.Decode.

J'ai donc enquêté sur la façon dont je peux utiliser l'espace de noms System.XML dans SQL pour accéder à cette méthode sans avoir à l'envelopper dans un de mes propres assemblées. Est-ce possible? à savoir comment puis-je accéder à cette assemblée directement via T-SQL?

Était-ce utile?

La solution

Il a tout à fait quelques exemples d'écriture add-ins à l'aide de .NET pour SQL. Je crois que vous aurez besoin d'avoir SQL 2005 ou plus récent pour créer un complément.

Voici un exemple qui est particulièrement utile.

Création d'une fonction définie par l'utilisateur CLR SQL pour valider les valeurs utilisant des expressions régulières @ MSDN

Dans votre cas, vous voudrez probablement écrire une fonction qui prend un octet [] et renvoie une chaîne (décodage), avec une fonction correspondante qui prend une chaîne et renvoie un octet [].

En fait, je ne suis pas sûr que vous pouvez utiliser directement byte [], mais vous devriez être en mesure d'écrire une fonction wrapper correspondante dans SQL qui peut prendre une chaîne hexagonale et le transformer en un varbinary () si cela est nécessaire.

modifier

Voici quelques liens plus durables à d'autres références qui sont inclus dans le lien précédent, juste au cas où il disparaît jamais.

Comment: créer et exécuter un SQL CLR fonction définie par l'utilisateur @ MSDN

Attributs personnalisés pour Routines CLR @ TechNet

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top