Links

MSCEWI3100

For Loop With Multiple Conditions Is Currently Not Supported By Snowflake Scripting. Only First Condition Is Used

Severity

Low

Description

Oracle allows multiple conditions in a single FOR LOOP however, Snowflake Scripting only allows one condition per FOR LOOP. Only the first condition is migrated and the others are ignored during transformation.

Example Code

Input Code:

CREATE OR REPLACE PROCEDURE P3
AS
BEGIN
FOR i IN REVERSE 1..3,
REVERSE i+5..i+7
LOOP
NULL;
END LOOP;
END;

Output Code:

CREATE OR REPLACE PROCEDURE PUBLIC.P3 ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
BEGIN
/*** MSC-WARNING - MSCEWI3100 - FOR LOOP WITH MULTIPLE CONDITIONS IS CURRENTLY NOT SUPPORTED BY SNOWFLAKE SCRIPTING ***/
FOR i IN REVERSE 1 TO 3
LOOP
NULL;
END LOOP;
END;
$$;

Recommendations

  • Separate the FOR LOOP into different loops or rewrite the condition.
  • If you need more support, you can email us at [email protected]