当前位置: 首页 > 知识库问答 >
问题:

雪花:从程序返回值是强制性的吗?

唐阳飙
2023-03-14
CREATE [ OR REPLACE ] PROCEDURE <name> ( [ <arg_name> <arg_data_type> ] [ , ... ] )
  RETURNS <result_data_type> [ NOT NULL ]
  LANGUAGE JAVASCRIPT
  [ { CALLED ON NULL INPUT | { RETURNS NULL ON NULL INPUT | STRICT } } ]
  [ VOLATILE | IMMUTABLE ]
  [ COMMENT = '<string_literal>' ]
  [ EXECUTE AS { CALLER | OWNER } ]
  AS '<procedure_definition>'

共有1个答案

彭坚壁
2023-03-14

根据该语法,它是强制性的。但是您的返回值可以只是静态varchar,而不是来自查询结果。如果过程中没有返回任何内容,则甚至为NULL。

例如,如下所示(返回NULL)

CREATE OR REPLACE PROCEDURE testproc()
RETURNS varchar
LANGUAGE JAVASCRIPT AS
'var sqlcommand =
`INSERT INTO foo (bar) VALUES (999);`
snowflake.execute({sqlText: sqlcommand});
';

但是最好添加一些错误处理并返回成功/失败消息,如下所示:

CREATE OR REPLACE PROCEDURE testproc()
RETURNS varchar
LANGUAGE JAVASCRIPT AS
'var sqlcommand =
`INSERT INTO foo (bar) VALUES (999);`
try {
    snowflake.execute({sqlText: sqlcommand});
    return "Success";
    }
catch(err) {
    return "Failed: "+ err;
}
';

 类似资料:
  • 创建过程GetLastUpdateDate()以$$的形式返回布尔语言javascript

  • 我有一个返回布尔值javascript存储过程。我希望能够在事务内部调用这个存储过程,并在提交事务之前测试返回值。 如何回滚存储过程中执行的语句?

  • 问题内容: 我正在使用Oracle 11GR2,并且当varchar2字段为空时,在空字段上执行a 将显示在我的Eclipse控制台上。如何让它显示空字符串呢? 问题答案: 你的getter方法:

  • 问题内容: 我如何获得一个线程以将元组或我选择的任何值返回给Python中的父级? 问题答案: 我建议您在启动线程之前实例化Queue.Queue,并将其作为线程的args之一传递:在线程完成之前,它将结果作为参数接收到的队列中。父母可以或愿意。 队列通常是在Python中安排线程同步和通信的最佳方法:队列本质上是线程安全的消息传递工具,这是组织多任务的最佳方法!