2014-05-21 5 views
1

Je suis nouveau sur SSIS. J'essaye d'obtenir un champ qui contient une chaîne de JSON d'une table comme entrée, et convertis le Json dans une table en tant que sortie. J'ai installé un composant de script asynchrone dans SSIS, sélectionné le champ JSON comme colonne d'entrée, et a également créé des colonnes de sortie, mais je suis tombé sur quelques problèmes:Composant de script SSIS - Traite 1 ligne de JSON vers la table

  1. Comment puis-je obtenir la valeur de l'entrée? J'essaie d'extraire l'entrée colonne à chaîne dans la « ProcessInputRow » méthode comme

    string = Row.MData Je reçois « Impossible de convertir implicitement le type « Microsoft.SqlServer.Dts.Pipeline.BlobColumn » à « string » »

    Ou retour « Microsoft.SqlServer.Dts.Pipeline.BlobColumn » lorsque je tente de le convertir en chaîne

  2. si je viens d'écrire mon code dans « ProcessInputRow » parce que je peux utiliser OutputBuffer.AddRows pour construire ma sortie? Et ignorer "CreateNewOutputRows" car je ne peux pas accéder aux données d'entrée dans "CreateNewOutputRows"?

  3. Ou toute suggestion d'une meilleure approche de le faire?

Répondre

0

Je soupçonne que vous devez utiliser un code similaire à ce script dans transform:

var = myString System.Text.Encoding.Unicode.GetString (Row.MData.GetBlobData (0, Convert.ToInt32 (Row.MData.Length)));

cela devrait vous permettre d'obtenir le json stocké dans un blob comme une chaîne que vous devez remplacer Ascii pour unicode en fonction des spécificités de votre code.

+0

Merci, j'ai trié ça. – user3268139

Questions connexes