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….