【问题标题】:DDL statement in snowflake function雪花函数中的 DDL 语句
【发布时间】:2021-12-10 15:16:06
【问题描述】:

我正在尝试在其中包含 DDL 语句的雪花中创建一个函数。下面是函数。

CREATE OR REPLACE function test_10252021(P1 VARCHAR(100)) returns
varchar not null language javascript as $$ try { `create or replace
temporary table temp_EMP
                as
                select * from demo_db.public.EMP
                where
                DEPT_NO='${P1}' `; return "Successful"; } catch(err) { return err.message; } $$ ;

函数正在创建,但是当我在 select 语句下面执行时,临时表没有被创建。

谁能帮助我如何在函数而不是过程中执行 ddl 语句。

select  test_10252021('20');
select * from  temp_EMP;

【问题讨论】:

  • 为什么要在 UDF 函数中使用 DDL?

标签: sql function snowflake-cloud-data-platform ddl


【解决方案1】:

您不能在 Snowflake JavaScript UDF 中运行 SQL,句号。没有解决方法或混乱;就是没办法。

如果要使用 JavaScript 运行 DDL,则需要使用存储过程。

CREATE OR REPLACE procedure test_10252021(P1 VARCHAR(100)) returns
varchar not null language javascript as 
$$ 
try { 

snowflake.execute({sqlText:`create or replace
temporary table temp_EMP
                as
                select * from demo_db.public.EMP
                where
                DEPT_NO='${P1}' `});
                
return "Successful"; 
} 
catch(err) { return err.message; } 
$$ ;

call test_10252021('20');

select * from temp_emp;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-07
    • 2020-06-10
    • 1970-01-01
    • 2021-10-05
    • 2021-10-24
    • 2023-01-06
    • 1970-01-01
    • 2021-07-18
    相关资源
    最近更新 更多