MSCEWI3103
For Loop Format Is Currently Not Supported By Snowflake Scripting
High
Oracle allows different types of conditions for a
FOR LOOP
. It supports boolean expressions, collections, records... However, Snowflake scripting only supports FOR LOOP
with defined integers as bounds. All other formats are marked as not supported and require additional manual effort to be transformed.single_expression_control
values_of_control
indices_of_control
pairs_of_control
cursor_iteration_control
is currently marked as not supported. Removing parenthesis from the expression should transform it as a CURSOR FOR LOOP.Original:
FOR i IN (cursor_variable) LOOP NULL; END LOOP;
Should be changed to:
FOR i IN cursor_variable LOOP NULL; END LOOP;
CREATE OR REPLACE PROCEDURE P3
AS
TYPE values_aat IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER;
l_employee_values values_aat;
BEGIN
FOR power IN REPEAT power*2 WHILE power <= 64 LOOP
NULL;
END LOOP;
FOR i IN VALUES OF l_employee_values LOOP
NULL;
END LOOP;
END;
CREATE OR REPLACE PROCEDURE PUBLIC.P3 ()
RETURNS VARCHAR
LANGUAGE SQL
EXECUTE AS CALLER
AS
$$
DECLARE
l_employee_values VARIANT /*** MSC-WARNING - MSCEWI1055 - REFERENCED CUSTOM TYPE 'values_aat' NOT FOUND ***/;
BEGIN
-- ** MSC-ERROR - MSCEWI3103 - FOR LOOP FORMAT IS CURRENTLY NOT SUPPORTED BY SNOWFLAKE SCRIPTING **
-- /*** MSC-WARNING - MSCEWI3101 - FOR LOOP WITH "WHILE" CLAUSE IS CURRENTLY NOT SUPPORTED BY SNOWFLAKE SCRIPTING ***/
-- FOR power IN REPEAT power*2 WHILE power <= 64 LOOP
-- NULL;
-- END LOOP
;
-- ** MSC-ERROR - MSCEWI3103 - FOR LOOP FORMAT IS CURRENTLY NOT SUPPORTED BY SNOWFLAKE SCRIPTING **
-- FOR i IN VALUES OF l_employee_values LOOP
-- NULL;
-- END LOOP
;
END;
$$;
- Rewrite the
FOR LOOP
condition or use a different kind ofLOOP
to simulate the behavior.
Last modified 3mo ago