我正在尝试将字符串传递给使用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”。
答案 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