Conseils et formations : vos deux atouts pour réussir !
Accueil > Integration Services > Articles
Gestion de BLOB par script

Utiliser le type NTEXT dans les scripts :

Le type NTEXT a ceci de particulier qu'il ne peut être traité de manière simple dans les flux de données, en effet sa taille (jusqu'à 2 Go) nécessite des opérations spéciales pour le manipuler

 

Il existe bien des tâches Importer Colonne et Exporter Colonne, mais ces tâches travaillent sur des fichiers, alors que faire ?

 

Manipulation du type par script VB :

 

Voici la base de données utilisée ici :

 

Le type que l'on veut manipuler est CompteRendu (NTEXT)

 

Et voici la table avant manipulation :

 

Il s'agit de faire des corrections dans le type NTEXT .

 

Voici le flux de données :

 

 

Détail de la source :

 

 

Et le détail du script :

 

 

' Microsoft SQL Server Integration Services user script component

' This is your new script component in Microsoft Visual Basic .NET

' ScriptMain is the entrypoint class for script components

 

Imports System

Imports System.Data

Imports System.Math

Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper

Imports Microsoft.SqlServer.Dts.Runtime.Wrapper

 

Public Class ScriptMain

Inherits UserComponent

 

Public Overrides Sub Entrée0_ProcessInputRow(ByVal Row As Entrée0Buffer)

'

' Add your code here

'

Dim iLg As UInteger

iLg = Row.CompteRendu.Length

Dim sCompteRendu As String

sCompteRendu = System.Text.Encoding.Unicode.GetString(Row.CompteRendu.GetBlobData(0, CInt(Row.CompteRendu.Length)))

 

sCompteRendu = sCompteRendu + "DVE"

 

Row.CompteRendu.ResetBlobData()

 

Row.CompteRendu.AddBlobData(System.Text.Encoding.Unicode.GetBytes(sCompteRendu))

End Sub

 

End Class

 

 

Toute l'astuce consiste à extraire les données du BLOB, les convertir, puis les renvoyer dans le flux de sortie.

 

Voici le résultat de l'éxécution :

 

Et les lignes qui ont été générées :

 

Bien sûr, il ne reste plus qu'à appliquer vos propres fonctions sur le string : uppercase, lowercase et ménages divers….

 

 

 ‭(Masqué)‬ WebPart1 Web Part

/SSIS/Gestion de BLOB par script/