Wie konvertiere ich Zahl in String und übergebe sie als Argument an Execute Process Task?

8

Ich verwende Task ausführen in SSIS 2008 R2. Ich habe eine Variable idVar , die vom Datentyp Int32 ist. Ich muss diese Variable an die Eigenschaft Arguments der Aufgabe übergeben, damit die ausführbare Datei diese Variable als Argument annehmen kann. Ich verwende Ausdruck, um @idVar zu Arguments zuzuweisen.

Jetzt sagt das System, dass ich Int in String umwandeln muss, also habe ich den folgenden Ausdruck im Ausdrucksersteller verwendet

%Vor%

Es gibt den folgenden Fehler:

%Vor%

Was ist der richtige Weg, um die Zahl in eine Zeichenkette umzuwandeln?

    
Sheen 01.11.2012, 12:23
quelle

3 Antworten

25

Ursache des Problems:

Arguments Eigenschaft in Auf der Registerkarte Steuerungsablauf verfügbare Prozessaufgabe ausführen erwartet einen Wert vom Datentyp DT_WSTR und nicht DT_STR .

SSIS 2008 R2-Paket, das das Problem veranschaulicht und behebt:

Erstellen Sie ein SSIS-Paket in Business Intelligence Development Studio (BIDS) 2008 R2 und nennen Sie es als SO_13177007.dtsx . Erstellen Sie eine Paketvariable mit den folgenden Informationen.

%Vor%

Ziehen Sie eine Prozessaufgabe ausführen auf die Registerkarte Kontrollfluss und benennen Sie sie als Argumente übergeben

Doppelklicken Sie auf Task ausführen , um Execute Process Task Editor zu öffnen. Klicken Sie auf die Seite Ausdrücke und anschließend auf die Schaltfläche Ellipse für die Eigenschaft Ausdrücke , um das Property Expression Editor anzuzeigen.

Wählen Sie im Property Expression-Editor die Eigenschaft Arguments aus und klicken Sie auf die Schaltfläche Ellipsis , um die Eigenschaft zu öffnen Expression Builder .

Geben Sie im Ausdrucksersteller den folgenden Ausdruck ein und klicken Sie auf Evaluate Expression . Dieser Ausdruck versucht, den Ganzzahlwert in der Variablen IdVar in den Datentyp string zu konvertieren.

%Vor%

Wenn Sie auf Ausdruck auswerten klicken, wird die folgende Fehlermeldung angezeigt, weil die Argument-Eigenschaft in Task ausführen einen Wert vom Datentyp DT_WSTR erwartet .

Um das Problem zu beheben, aktualisieren Sie den Ausdruck wie unten gezeigt, um den ganzzahligen Wert in den Datentyp DT_WSTR zu konvertieren. Durch Klicken auf Ausdruck auswerten wird der Wert im Textbereich Evaluierter Wert angezeigt.

%Vor%

Referenzen:

Um die Unterschiede zwischen den Datentypen DT_STR und DT_WSTR in SSIS zu verstehen, lesen Sie die Dokumentation Integration Services-Datentypen auf MSDN. Hier sind die Zitate aus der Dokumentation zu diesen beiden String-Datentypen.

DT_STR

Eine nullterminierte ANSI / MBCS-Zeichenfolge mit einer maximalen Länge von 8000 Zeichen. (Wenn ein Spaltenwert zusätzliche Nullabschlusszeichen enthält, wird die Zeichenfolge beim Auftreten der ersten Null abgeschnitten.)

DT_WSTR

Eine nullterminierte Unicode-Zeichenfolge mit einer maximalen Länge von 4000 Zeichen. (Wenn ein Spaltenwert zusätzliche Nullabschlusszeichen enthält, wird die Zeichenfolge beim Auftreten der ersten Null abgeschnitten.)

    
user756519 01.11.2012, 12:59
quelle
0

Ausdruck: "Gesamtanzahl:" + (DT_WSTR, 5) @ [Benutzer :: Cnt]

    
Lori Kent 16.05.2017 14:59
quelle
0

Ausdruck: "Gesamtanzahl:" + (DT_WSTR, 11) @ [Benutzer :: int32Value]

für Int32 - (-2,147,483,648 bis 2,147,483,647)

    
Klaus Mueller 28.03.2018 07:39
quelle

Tags und Links