Oracle

Oracle Unsupported Cases

1. Unsupported types

Custom types declarations are not supported. Variable declarations using custom types are being transformed to VARIANT even though, all the usages of those variables are also marked as not supported.

Some of these cases are going to be supported in the future by using Snowflake arrays and objects.

Input Code:

CREATE OR REPLACE PROCEDURE unsupported_types (FLAG NUMBER)
IS

PRAGMA AUTONOMOUS_TRANSACTION;
TYPE ASSOC_ARRAY_TYPE IS TABLE OF ftable4%ROWTYPE INDEX BY PLS_INTEGER;
TYPE CUSTOM_TYPE1 IS TABLE OF NUMBER(10);
TYPE CUSTOM_TYPE2 IS VARRAY(1) OF NUMBER NOT NULL;
TYPE CUSTOM_TYPE3 IS VARYING ARRAY(1) OF NUMBER;

TYPE NUMBER_RECORD_DEFINITION IS RECORD(
      rec_id f_employee.id%TYPE,
      rec_name f_employee.first_name%TYPE,
	  rec_collection CUSTOM_TYPE1
    );

number_record NUMBER_RECORD_DEFINITION;
custom_type1_var CUSTOM_TYPE1;
custom_type2_var CUSTOM_TYPE2;
custom_type3_var CUSTOM_TYPE3;

BEGIN
    SELECT id, first_name INTO number_record FROM f_employee WHERE id = 1 FETCH NEXT 1 ROWS ONLY;
END unsupported_types;

Output Code:

2. Fetch Bulk Collect Into

Snowflake Scripting does not support the BULK COLLECT INTO clause. For this reason, results will need to be passed through other ways.

Input Code:

Output Code:

3. DML statement unsupported patterns

Some DML clauses or usages of INSERT, UPDATE and DELETE are not supported when combined with cursors or records.

Input Code:

Output Code:

4. Execute Immediate not supported patterns

Snowflake Execute Immediate does not support returning a value and storing it inside a variable using INTO syntax. Also, another unsupported case is when IN/OUT is used along with the USING clause.

Input Code:

Output Code:

5. Other unsupported cases

For most of the unsupported cases or important considerations, there are other specific MSCEWIs that can be checked here:

Code
Description

Constants are not supported by Snowflake Scripting. It was transformed into a variable.

Output parameters are not supported by Snowflake Scripting

PRAGMA exception init not supported.

Procedure Properties are Not Supported in Snowflake Procedures.

The NOT NULL constraint is not supported in variable declarations inside procedures.

The exception code exceeds Snowflake Scripting limits.

For Loop with multiple conditions is currently not supported By Snowflake Scripting.

Specific For Loop clause is currently not supported By Snowflake Scripting.

For Loop with float number as bound may not behave correctly in Snowflake Scripting.

For Loop format Is currently not supported by Snowflake Scripting.

Parametrized Cursor is not supported by Snowflake Scripting.

The Following Assignment Statement is Not Supported by Snowflake Scripting.

Expressions as arguments of Using Clause are not supported by Snowflake Scripting

Merge statement error logging clause is not supported by Snowflake Scripting

Last updated