如何在select语句中选择返回雪花表的存储过程的结果集

问题描述 投票:0回答:1

下面是我们创建的存储过程,它返回包含 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

$$;

stored-procedures snowflake-cloud-data-platform
1个回答
0
投票

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;
© www.soinside.com 2019 - 2024. All rights reserved.