Ich habe ein seltsames Verhalten von SQL Server 2016 beim Umgang mit defekten Pipes in R-Skripts gefunden. Sehen Sie sich die T-SQL-Code unten:R-Skripts in SQL Server 2016 beschädigt mit  Zeichen
DECLARE
@r nvarchar(100)
/* Create a data frame with a broken pipe as one of its fields and a simple ASCII encoded string in another. */
SET @r = N'
df <- data.frame(
a = "¦",
b = "a,b,c"
)';
/* Print @r to detect the inclusion of any unwanted characters. */
PRINT @r;
/* Execute and retrieve the output. */
EXECUTE sp_execute_external_script
@language = N'R',
@script = @r,
@output_data_1_name = N'df'
WITH RESULT SETS ((
BadEncodingColumn varchar(2),
GoodEncodingColumn varchar(5)
));
Der Druckbefehl gibt diese in der Registerkarte Nachrichten:
df <- data.frame(
a = "¦",
b = "a,b,c"
)
Allerdings sieht die letzte Registerkarte Ergebnisse wie folgt aus:
BadEncodingColumn GoodEncodingColumn
¦ a,b,c
Diese Das Verhalten scheint in der EXECUTE sp_execute_external_script-Phase des Skripts aufzutauchen, und ich habe dieses Zeichen() beim Umgang mit anderen Codierungsproblemen mit Excel, R und anderen Versionen von SQL Server gesehen.
Irgendwelche Lösungen für dieses Verhalten? Und Bonuspunkte, was ist besonders an dem Charakter?
Edit: Ich habe versucht, mit Datentypen in SQL Server und R vergeblich versucht.
warum wurde nicht wirklich sicher, folgt dieser Downvoted, scheint wie eine valide und neue Frage an mich. –