【问题标题】:How to return result from a stored procedure to TASK RETURN_VALUE in snowflake?如何将存储过程的结果返回到雪花中的 TASK RETURN_VALUE?
【发布时间】:2021-10-11 09:23:14
【问题描述】:

我想将存储过程中的日志记录和状态消息返回给调用它的 TASK。

create or replace procedure status_return()
  returns string not null
  language javascript
  as
  $$
    var result_status = 'The return status and debug information in string format';
  return result_status; // Statement returned for info/debug purposes
  $$;

我想将存储过程调用 status_return() 的结果传递回任务

-- Create a task that calls the stored procedure every hour
create or replace  task call_SP
  warehouse = SMALL
  schedule = '1 minute'
as
call status_return();

当我执行 TASK_HISTORY 来查看 RETURN_VALUE 时总是空的。

select * 
from table(information_schema.task_history(SCHEDULED_TIME_RANGE_START => dateadd(hours, -5, current_timestamp()) , 
                               TASK_NAME => 'call_sp'));

如何在task_history 中查看存储过程的成功、失败或错误结果?

我尝试通过以下方式创建任务,但不成功并且返回错误。

create or replace  task call_SP
  warehouse = EDS_SMALL
  schedule = '1 minute'
as
call system$set_return_value(call status_return());

我可以在任务中使用 Javascript 吗?将存储过程调用的结果存储到变量中并返回给TASK结果

【问题讨论】:

    标签: snowflake-cloud-data-platform snowflake-schema


    【解决方案1】:

    为了能够在 TASK_HISTORY 中获得 RETURN_VALUE,您必须使用 call system$set_return_value() 在存储过程中设置 return_value。 示例可以在snowflake documentation 中找到。

    如果您希望 task_history 的 return_value 字段在您的任务启动时返回您的结果状态变量,它应该是这样的:

    create or replace procedure status_return()
      returns string not null
      language javascript
      as
      $$
      var result_status = 'The return status and debug information in string format';
      var rv_stmt = snowflake.createStatement({sqlText:`call system$set_return_value('` + result_status  + `');`});
      var rv_res = rv_stmt .execute(); // Set return_value
    
      return result_status; // Statement returned for info/debug purposes
      $$;
    

    【讨论】:

      猜你喜欢
      • 2022-11-11
      • 2020-09-19
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多