是否可以从存储过程返回多个数据集?
例如
CREATE PROCEDURE [dbo].[usp_vvvv] (....)
.....
SELECT *
FROM #_temp_client_details
SELECT *
FROM #_temp_address_details
DROP TABLE #_temp_client_details
DROP TABLE #_temp_address_details
....
END TRY
BEGIN CATCH
..
END CATCH
END
在我的场景中,我需要将3个不同的临时表中的数据集放入python代码中。
所有3个不同的临时表都是使用相同的表,相同的参数和一些操作构造的。因此,我不想创建3个单独的存储过程(因为所有3个存储过程都将使用90%相同的SQL逻辑)。
我目前从以下存储过程之一获取输出:
import pandas as pd
def execute():
query='exec [zzz].[dbo].[sp_zzz]?, ?, ?, ?'
df = pd.read_sql(query, cnxn, params=[astart, aend, lstart,
lend])
writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer, index=False, sheet_name='client')
writer.save()
有可能吗?如果可以的话,如何将所有表格输出到大熊猫中?
答案 0 :(得分:1)
是的,这应该可行。在以下位置的Python文档中检查nextset()
函数的使用:https://www.python.org/dev/peps/pep-0249/