Snowflake Scripting cursor rows are not modifiable.
Description
This EWI is added when Cursors are open to modification in the input code. Snowflake Scripting does not allow modifying cursor rows.
Example Code:
Input Code:
IN -> SqlServer_01.sql
CREATE OR ALTER PROCEDURE modifiablecursorTestASBEGIN-- Should be marked with SSC-FDM-TS0013 DECLARE CursorVar CURSOR FOR SELECT FirstName FROM vEmployee; DECLARE CursorVar2 INSENSITIVE CURSOR FOR SELECT FirstName FROM vEmployee; DECLARE CursorVar3 CURSOR KEYSET SCROLL_LOCKS FOR SELECT FirstName FROM vEmployee; DECLARE CursorVar4 CURSOR DYNAMIC OPTIMISTIC FOR SELECT FirstName FROM vEmployee; DECLARE CursorVar6 CURSOR STATIC FOR SELECT FirstName FROM vEmployee; DECLARE CursorVar7 CURSOR READ_ONLY FOR SELECT FirstName FROM vEmployee;-- Shouid not be marked DECLARE CursorVar5 CURSOR STATIC READ_ONLY FOR SELECT FirstName FROM vEmployee; RETURN 'DONE';END;
Output Code:
OUT -> SqlServer_01.sql
CREATE OR REPLACE PROCEDURE modifiablecursorTest ()RETURNS VARCHARLANGUAGE SQLCOMMENT ='{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},{"attributes":{"component":"transact"}}'EXECUTE AS CALLERAS$$ DECLARE-- Should be marked with SSC-FDM-TS0013--** SSC-FDM-TS0013 - SNOWFLAKE SCRIPTING CURSOR ROWS ARE NOT MODIFIABLE ** CursorVar CURSOR FOR SELECT FirstName FROM vEmployee;--** SSC-FDM-TS0013 - SNOWFLAKE SCRIPTING CURSOR ROWS ARE NOT MODIFIABLE ** CursorVar2 CURSOR FOR SELECT FirstName FROM vEmployee;--** SSC-FDM-TS0013 - SNOWFLAKE SCRIPTING CURSOR ROWS ARE NOT MODIFIABLE ** CursorVar3 CURSOR FOR SELECT FirstName FROM vEmployee;--** SSC-FDM-TS0013 - SNOWFLAKE SCRIPTING CURSOR ROWS ARE NOT MODIFIABLE ** CursorVar4 CURSOR FOR SELECT FirstName FROM vEmployee;--** SSC-FDM-TS0013 - SNOWFLAKE SCRIPTING CURSOR ROWS ARE NOT MODIFIABLE ** CursorVar6 CURSOR FOR SELECT FirstName FROM vEmployee;--** SSC-FDM-TS0013 - SNOWFLAKE SCRIPTING CURSOR ROWS ARE NOT MODIFIABLE ** CursorVar7 CURSOR FOR SELECT FirstName FROM vEmployee;-- Shouid not be marked CursorVar5 CURSOR FOR SELECT FirstName FROM vEmployee; BEGIN RETURN 'DONE'; END;$$;