Snowflake 存储过程中的可选参数

Optional Parameters in Snowflake Stored Procedures

我们可以使用可选参数调用 Snowflake 存储过程吗? 例如,B 参数将是可选的。

create procedure my_proc(A VARCHAR, B VARCHAR (optional))

标准方法是制作许多存储过程,并使用“提供的默认值”调用越少越好

Snowflake 也支持overloading stored procedure names

所以 Javascript SP 可能看起来像:

create procedure my_proc(A VARCHAR, B VARCHAR)
  RETURNS VARCHAR
  LANGUAGE javascript
  AS
  $$
    return A + B;
  $$;

create or replace procedure my_proc(A VARCHAR)
  RETURNS VARCHAR
  LANGUAGE javascript
  AS
  $$
 
      var cmd = "call my_proc(:1, 'abc')";
      var stmt = snowflake.createStatement(
              {
              sqlText: cmd,
              binds: [A]
              }
              );
    var result1 = stmt.execute();
    result1.next();
    return result1.getColumnValue(1);
  $$;
  call my_proc('123');
MY_PROC
123abc