Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Assigning default value to snowflake stored procedure arguments

Is it possible to have default values in arguments of Stored procedures of Snowflake. For the below example, I am getting error. Please help

syntax error line 1 at position 53 unexpected ''test''.

create or replace procedure test(arg1 string default 'test') 
returns string not null
language sql
as
$$
begin
return arg1;
end;
$$
;
like image 744
Mat Avatar asked Oct 24 '25 20:10

Mat


2 Answers

Snowflake's procedures applies polymorphism instead of using default value. This solution is when you do not want to call sp like func1(Null)

For example (sql scripting):

create or replace procedure func1(arg1 varchar, arg2 varchar)
...

create or replace procedure func1(arg1 varchar)
... 
call func1(arg1 , 'some-default-value')
...
like image 150
duylamvo Avatar answered Oct 27 '25 09:10

duylamvo


It is possible now to use default parameters. See

For example:

CREATE OR REPLACE PROCEDURE ST_DEMO_DB.RAW_DATA.USP_EVT_LOG("EVT_TYPE" VARCHAR(10) DEFAULT NULL, "EVT_DESC" VARCHAR(1000))
RETURNS BOOLEAN
LANGUAGE SQL
EXECUTE AS OWNER
AS
$$
BEGIN
    INSERT INTO TBL_EVT_LOG(EVT_TYPE,EVT_DESC)
    VALUES(COALESCE(:EVT_TYPE,'INFO'),:EVT_DESC);
    RETURN TRUE;
END
$$;
like image 23
orellabac Avatar answered Oct 27 '25 08:10

orellabac