首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程中的Snowflake 'get‘语句不起作用

存储过程中的Snowflake 'get‘语句不起作用
EN

Stack Overflow用户
提问于 2021-05-30 00:35:58
回答 1查看 48关注 0票数 0

问题语句: snowflake 'get‘语句在snowflake存储过程中不起作用。

代码语言:javascript
复制
CREATE OR REPLACE PROCEDURE SP_UNLOAD_DYNAMIC("prefix" varchar)
    RETURNS varchar(1000)
    LANGUAGE JAVASCRIPT
    EXECUTE AS CALLER
    AS
    $$
    var result  = "";

    try {
            
        var sql00   = "select concat('" + prefix + "', to_char(ts,'yyyymmddhh24miss'),'.txt') from ts";
        var stmt00  = snowflake.execute({ sqlText:sql00 });
        stmt00.next();
        var rs = stmt00.getColumnValue(1);
        
        var sql01   = "copy into @my_unload_stage/unload/" + rs + " from tmp_dedupe header=false single=true max_file_size=4900000000 overwrite=true;"
        var stmt01  = snowflake.execute({ sqlText:sql01 });
        stmt01.next();
           
        var sql02   = 'get @my_unload_stage file://D:\\project_x\\OutputFiles_STG\\';        
        var stmt02  =  snowflake.execute({ sqlText:sql02 });
        stmt02.next();
        
        result = rs;
        
    }
     
    catch (err)  {
        result =  "Failed: Code: " + err.code + "\n  State: " + err.state;
        result += "\n  Message: " + err.message;
        result += "\nStack Trace:\n" + err.stackTraceTxt; 
    }
     
    return result;
    $$;

在stmt02之前,一切似乎都很正常。get语句在snowsql中起作用,但在存储过程中不起作用。

想一想,提前谢谢你。

-ibby

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-30 13:22:36

我认为您不能从存储过程中执行GET语句。您将请求Snowflake联系一个客户端,并将一个文件移动到该客户端。Snowflake VWH如何知道客户端将在哪里执行此操作?

为了做你正在做的事情,我相信你需要创建一个外部应用程序,它利用支持GET的雪花连接器之一,比如Python、JDBC、ODBC等,然后可能在Lambda或Azure函数中公开它。然后,您可以在Snowflake存储过程中通过Snowflake外部函数调用该API。

https://docs.snowflake.com/en/sql-reference/external-functions.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67753690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档