Ich manipuliere einen großen Wert, der Zeilen- und Spaltenwerte enthält, die durch ASCII-Zeilen- und -Spaltentrennzeichen getrennt sind. Das Ergebnis sind Tabellendaten, die ich in die SQL-Tabelle einfüge.Übergeben von Spalte/Variable als Binärwert, um die Funktion zu konvertieren
Einfaches Beispiel die Idee zu bekommen:
George|20;Ivan|15;Peter|10;
ist Transformation:
George 20
Ivan 15
Peter 10
und in Users ([name], [age]
) Tabelle eingefügt.
Vor dem Einfügen wird jeder Wert mithilfe der TRY_CONVERT
-Funktion in seinen Spaltentyp konvertiert. Das Problem ist, dass dies nicht wie erwartet mit VARBINARY
Daten funktioniert. Zum Beispiel (das zweite Ausgangssignal korrekt ist):
DECLARE @A NVARCHAR(1024) = '0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB';
SELECT TRY_CONVERT(VARBINARY(255), @A)
-- 0x300078004600450035003200300036003700360042003100410031004400390033004400410042004100420032003300310039004500450041003000330036003700340046003300360033003200450041004500450042003100360033004400310045003800380032003400340046003500450042003100440045003100300045004200
SELECT TRY_CONVERT(VARBINARY(255), 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB)
-- 0xFE520676B1A1D93DABAB2319EEA03674F3632EAEEB163D1E88244F5EB1DE10EB
Wenn die VARBINARY
Daten als Zeichenkette übergeben wird, wird die Zeichenfolge selbst VARBINARY
umwandelt. Ich muss die Daten ohne Anführungszeichen übergeben, aber wie wird dies getan, wenn eine Spalte/Variable vom Typ String übergeben wird?
Sie gefunden und die Antwort einige Sekunden früher :) Ich werde meine Antwort löschen, nehmen Sie upvote! – gofr1