下面是我们创建的存储过程,它返回包含 ID、Name 列的表
如何在雪花选择语句中使用结果集。我尝试了如下但没有成功。否则请建议如何创建 UDF 以便可以选择结果集,我在处理程序中有复杂的 python 逻辑。这只是示例代码
从表中选择*(test_sp.test_procedure('john'))
create or replace Procedure test_sp.test_procedure(name varchar)
returns table(id varchar,name varchar)
language python
packages = ('pandas','snowflake-snowpark-python')
runtime_version=3.8
handler='get_data'
AS
$$
def get_data(session,name):
sql = f'''SELECT
ID,NAME
FROM TEST_SP.TABLE
WHERE NAME = '{name}'; '''
df_sql = session.sql(sql )
return df_sql
$$;
A 表格 SQL UDF 可以像您的示例一样使用
select * from table(udf('john'))
语法。根据您的简单示例,这应该可行。
对于程序,这是雪花文档中的主要选项
call test_sp.test_procedure('john');
select * from table(result_scan(last_query_id()));
您还可以使用脚本语法将输出与结果集一起使用。请参阅使用结果集
DECLARE
res RESULTSET default (call test_sp.test_procedure('john'));
BEGIN
...
END;