问题描述
我看到了很多有关如何调用存储过程以返回使用fetchval()
函数从Python插入到sql表的记录的键的信息。
sql是
ALTER FUNCTION udf_get_gleif_last_entity_lei
(
)
RETURNS nvarchar(500)
AS
BEGIN
DECLARE @last_lei nvarchar(500)
SELECT @last_lei = LEI FROM dbo.gleif_level1_entities WHERE id=(SELECT max(id) FROM dbo.gleif_level1_entities);
RETURN @last_lei
END
declare @result nvarchar(500)
exec @result = dbo.udf_get_gleif_last_entity_lei
print(@result)
现在我想通过python调用它。我认为它的工作方式与调用存储过程相同:
[conn,cursor] = init_connection(server_name,db_name)
sql_str = "exec dbo.udf_get_gleif_last_entity_lei"
return_value = cursor.execute(sql_str).fetchval()
print("return_value = ",return_value)
不幸的是,这不起作用。 cursor.execute()
命令出错。
这使我认为必须以不同的方式执行UDF。或者,也许我将其更改为常规存储过程。我可以做的。无论如何:pyodbc可以调用UDF吗?如果可以,怎么办?
附录:是的。当我将UDF更改为存储过程时,这绝对可行。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)