I have been trying to figure out a smooth way to use parameters in a Snowflake SQL stored procedure using this syntax:
CREATE OR REPLACE PROCEDURE Schema1.TestProc (Param1 FLOAT)
RETURNS VARCHAR
LANGUAGE SQL
AS
DECLARE CursorInst CURSOR FOR SELECT MIN(XID) as MinXID, MAX(XID) as MaxXID
FROM (SELECT XID,NTILE(10) OVER (ORDER BY XID) as NumBatch
FROM Schema1.Table1
WHERE Active = 1
AND XID IN (SELECT DISTINCT Table1XID FROM Schema1.Table2
WHERE DateCreated::DATE >= CURRENT_TIMESTAMP::TIMESTAMP::DATE - :Param1)) t
GROUP BY NumBatch;
Processed INTEGER DEFAULT 0;
BEGIN
FOR Record IN CursorInst
DO
Processed := Processed + 1;
END FOR;
RETURN 'Success';
END
but I get the error:
Bind variable :Param1 not set. (line 301)
Any way to do this using similar syntax?