【发布时间】:2016-12-12 11:14:58
【问题描述】:
在处理 R 脚本中的损坏管道时,我发现 SQL Server 2016 有一个奇怪的行为。请参阅下面的 T-SQL 代码:
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)
));
PRINT 命令在“消息”选项卡中返回:
df <- data.frame(
a = "¦",
b = "a,b,c"
)
但是,最终的结果选项卡如下所示:
BadEncodingColumn GoodEncodingColumn
¦ a,b,c
这种行为似乎出现在脚本的 EXECUTE sp_execute_external_script 阶段,我在处理 Excel、R 和其他版本的 SQL Server 的其他编码问题时看到了这个字符 (Â)。
此行为的任何解决方案?还有加分,这个角色有什么“特别”之处?
编辑:我尝试修改 SQL Server 和 R 中的数据类型,但无济于事。
【问题讨论】:
-
不太确定为什么这被否决了,对我来说似乎是一个有效且新颖的问题。
标签: sql-server r microsoft-r