Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将R脚本集成到SELECT查询中_Sql Server_R_Tsql_Sql Server 2016 - Fatal编程技术网

Sql server 将R脚本集成到SELECT查询中

Sql server 将R脚本集成到SELECT查询中,sql-server,r,tsql,sql-server-2016,Sql Server,R,Tsql,Sql Server 2016,因此,我有下面的集成R代码,我使用它可以通过正则表达式匹配内容,而不会太复杂。我最终要做的事情比这个示例更复杂,因此非常需要正则表达式,这只是第一步: 声明@in_adcn nvarchar500 声明@out\u ou nvarchar500 设置@in_adcn=N'CN=name\,名字asdf,OU=999,OU=Department2,OU=Fixed,OU=Fixed,DC=Fixed,DC=Fixed' 设置@out\u ou=N -从AD OU字符串中提取部门名称 EXEC sp

因此,我有下面的集成R代码,我使用它可以通过正则表达式匹配内容,而不会太复杂。我最终要做的事情比这个示例更复杂,因此非常需要正则表达式,这只是第一步:

声明@in_adcn nvarchar500 声明@out\u ou nvarchar500 设置@in_adcn=N'CN=name\,名字asdf,OU=999,OU=Department2,OU=Fixed,OU=Fixed,DC=Fixed,DC=Fixed' 设置@out\u ou=N -从AD OU字符串中提取部门名称 EXEC sp_execute_external_script@language=N'R', @脚本=N' pat=^.+OU=[^,]+,OU=Fixed,OU=Fixed,DC=Fixed,DC=Fixed,DC=Fixed$;
m考虑按照下面的示例将整个SELECT查询作为@input_data_1参数输入。然后,对新保存的数据帧列DepartmentName运行regex操作。最后,输出整个四列结果集

执行sp_执行_外部_脚本 @语言=N'R'
,@script=N'df您想要的是一个标量用户定义函数调用sp_execute_external_脚本,在该脚本中您将acad.ADcn传递给该函数。然而,由于您不能从函数内部调用UDF,因此您就不走运了。然而,在这种情况下,为什么要将R用于正则表达式,您不能创建一个SQLCLR过程/函数来为您实现这一点吗?几乎完美了!只剩下两个问题:不知何故,这会为每个ADCn返回相同的部门名称,应该有很多不同的部门名称。第一个包含Department9的ADCn似乎被反复使用,因为最终它们都在Department9中,这是不正确的。第二个问题:这会在消息输出中生成一个文本表。这不应该返回一个真正的表,因为这是我需要的。谢谢这不是因为这行代码中的[1]吗:df$DepartmentName是的,谢谢。不用担心桌子的问题,我只是有一个不同的显示器处于活动状态。它现在的工作情况和预期的一样。谢谢大家。