SQL server 2012 是不是支持调用外部 python 脚本? [复制]

Posted

技术标签:

【中文标题】SQL server 2012 是不是支持调用外部 python 脚本? [复制]【英文标题】:Does SQL server 2012 support to call external python script? [duplicate]SQL server 2012 是否支持调用外部 python 脚本? [复制] 【发布时间】:2019-09-17 07:44:29 【问题描述】:

SQL server 2012 是否支持调用外部 python 脚本?

【问题讨论】:

我相信你可以使用 SQLCMD 从 SQL Server 调用程序。但是,将 Python 脚本中的数据读入 SQL Server,我认为在 SQL Server 2012 中是不可能的(如果你打算这样做的话)。 上面链接的问题实际上是Run Python Script from MSSQL的副本;因为答案只是链接到另一个问题;和场外资源(不引用);这实际上是一个非常低质量的答案。 【参考方案1】:

SQL Server 2012 不支持执行外部 Python 脚本。根据sp_execute_external_script (Transact-SQL) 的文档:

执行作为过程输入参数提供的脚本。 脚本在可扩展性框架中运行。脚本必须写在 一种受支持和注册的语言,在数据库引擎上具有 至少一个扩展:R、Python 或 Java(在 SQL Server 2019 预览版中 仅)。

然后在Remarks 部分中继续说明以下内容:

使用 sp_execute_external_script 执行以 支持的语言。目前,支持的语言是 R for SQL Server 2016 R 服务,以及用于 SQL Server 2017 机器的 Python 和 R 学习服务。

您还可以通过查看Arguments 部分,特别是@Language,按版本确认支持的语言:

@language = N'language' 表示脚本语言。 语言系统名。根据您的 SQL Server 版本,有效 值是 R(SQL Server 2016 和更高版本)、Python(SQL Server 2017 和 稍后)和 Java(SQL Server 2019 预览版)。

如您所见,您至少需要2017年才能使用sp_execute_external_script使用内置工具执行Python Script,而可以执行外部Scripts的最早是2016年(当时只有R)。

这并不意味着你不能用不同的方式来做;例如使用 xp_cmdshell 或使用 SSIS 包调用它们,但我们没有关于您的最终目标的任何详细信息,无法提供更多信息。

【讨论】:

哇,文档中的语言很糟糕;其中一些肯定是用我称之为“残破”的英语写的。【参考方案2】:

我认为该功能是在 SQL Server 2016 中引入的,请查看此链接了解更多信息 https://www.mssqltips.com/sqlservertip/5036/installing-python-and-running-python-scripts-from-sql-server-ssms/

【讨论】:

以上是关于SQL server 2012 是不是支持调用外部 python 脚本? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

我们 MSAccess 是不是可以通过 SQL Server 中的外部链接视图插入数据? [复制]

SQL Server使用xp_cmdshell提示“不是内部或外部命令,也不是可运行的程序 或批处理文件”

SQL Server 2012 标准版是不是能搭建alwayson

SQL Server 2012 创建数据库快照

XAMPP 是不是支持 SQL Server? [关闭]

无法从 Docker 容器连接到外部 SQL Server