Some parts in the output code are omitted for clarity reasons.
Severity
Low
Description
This message is used to indicate that a boolean cursor attribute is not supported in SnowScript or that there is no transformation that emulates its functionality in SnowScript. The following table shows the boolean cursor attributes that can be emulated:
Boolean Cursor Attribute
Status
%FOUND
Can be emulated
%NOTFOUND
Can be emulated
%ISOPEN
Not Supported
Example Code
Input Code:
IN -> Oracle_01.sql
CREATE OR REPLACE PROCEDURE cursor_attributes_procIS is_open_attr BOOLEAN; found_attr BOOLEAN; my_record table1%ROWTYPE; CURSOR my_cursor IS SELECT * FROM table1;BEGIN OPEN my_cursor; LOOP FETCH my_cursor INTO my_record; EXIT WHEN my_cursor%NOTFOUND; is_open_attr := my_cursor%ISOPEN; found_attr := my_cursor%FOUND; END LOOP; CLOSE my_cursor;END;
Output Code:
OUT -> Oracle_01.sql
CREATE OR REPLACE PROCEDURE cursor_attributes_proc ()RETURNS VARCHARLANGUAGE SQLCOMMENT ='{"origin":"sf_sc","name":"snowconvert","version":{"major":1, "minor":0},"attributes":{"component":"oracle"}}'EXECUTE AS CALLERAS$$ DECLARE is_open_attr BOOLEAN; found_attr BOOLEAN; my_record OBJECT !!!RESOLVE EWI!!! /*** SSC-EWI-0036 - ROWTYPE DATA TYPE CONVERTED TO OBJECT ***/!!! := OBJECT_CONSTRUCT(); my_cursor CURSOR FOR SELECT OBJECT_CONSTRUCT( *) sc_cursor_record FROM table1; BEGIN OPEN my_cursor; LOOP--** SSC-PRF-0003 - FETCH INSIDE A LOOP IS CONSIDERED A COMPLEX PATTERN, THIS COULD DEGRADE SNOWFLAKE PERFORMANCE. ** FETCH my_cursor INTO :my_record; IF (my_record IS NULL) THEN EXIT; END IF; is_open_attr :=null/*my_cursor%ISOPEN*/!!!RESOLVE EWI!!! /*** SSC-EWI-OR0128 - BOOLEAN CURSOR ATTRIBUTE %ISOPEN IS NOT SUPPORTED IN SNOWFLAKE ***/!!!; found_attr := my_record IS NOT NULL; END LOOP; CLOSE my_cursor; END;$$;