从Python将字符串传递到存储过程

时间:2019-04-03 01:12:34

标签: sql-server python-3.x stored-procedures

我正在尝试将字符串传递给使用SQL Server 2017用Python编写的存储过程。

我想做的事情类似于:

DROP PROCEDURE IF EXISTS hello;
GO

CREATE PROCEDURE hello (@my_text varchar(100))
AS  
BEGIN  
EXEC sp_execute_external_script @language = N'Python',   
@script = N'
print("Hello ", my_text)
'
END
GO

EXEC hello "world"
GO

此脚本失败,并显示:

  

NameError:未定义名称“ my_text”。

1 个答案:

答案 0 :(得分:0)

您需要将SQL @my_text变量插入Python代码段。

CREATE PROCEDURE hello (@my_text varchar(100))
AS  
BEGIN  
DECLARE @s nvarchar(100)
SET @s = 'print("Hello ", "' + @my_text + '")'
EXEC sp_execute_external_script @language = N'Python',   
@script = @s
END