DECLARE
Translation reference to convert Oracle DECLARE statement to Snowflake Scripting
Description
Oracle DECLARE statement is an optional part of the PL/SQL block statement. It allows the creation of variables, constants, procedures declarations, and definitions, functions declarations, and definitions, exceptions, cursors, types, and many other statements. For more information regarding Oracle DECLARE, check here.
declare_section body
declare_section::= { item_list_1 [ item_list_2 ] | item_list_2 }
item_list_1::=
{ type_definition
| cursor_declaration
| item_declaration
| function_declaration
| procedure_declaration
}
...
item_list_2::=
{ cursor_declaration
| cursor_definition
| function_declaration
| function_definition
| procedure_declaration
| procedure_definition
}
...
item_declaration::=
{ collection_variable_decl
| constant_declaration
| cursor_variable_declaration
| exception_declaration
| record_variable_declaration
| variable_declaration
}
body::= BEGIN statement ...
[ EXCEPTION exception_handler [ exception_handler ]... ] END [ name ] ;Sample Source Patterns
Variable declaration
Oracle
Snowflake Scripting
Constant declaration
Constants are not supported in Snowflake Scripting, however, they are being transformed to variables to simulate the behavior.
Oracle
Snowflake Scripting
Cursor declaration
The Oracle cursor declaration is not required so it might be commented out on the output code. The cursor definition will be used instead of and it will be converted to the Snowflake Scripting cursor declaration. Please go to the CURSOR section to get more information about cursor definition.
Exception declaration
The exception declaration sometimes could be followed by the exception initialization, the current transformation takes both and merge them into the Snowflake Scripting exception declaration. The original PRAGMA EXCEPTION_INIT will be commented out.
Oracle
Snowflake Scripting
Not supported cases
The next Oracle declaration statements are not supported by the Snowflake Scripting declaration block:
Cursor variable declaration.
Collection variable declaration.
Record variable declaration.
Type definition (all its variants).
Function declaration and definition.
Procedure declaration and definition.
Known issues
1. The variable declarations with NOT NULL constraints are not supported by Snow Scripting.
The creation of variables with NOT NULL constraint throws an error in Snow Scripting.
2. The cursor declaration has no equivalent to Snowflake Scripting.
The Oracle cursor declaration is useless so it might be commented out in the output code. The cursor definition will be used instead and it will be converted to the Snowflake Scripting cursor declaration.
3. The exception code exceeds Snowflake Scripting limits.
Oracle exception code is being removed when it exceeds the Snowflake Scripting code limits. The exception code must be an integer between -20000 and -20999.
3. The not supported cases.
There are some Oracle declaration statements that are not supported by the Snowflake Scripting declaration block, so it might be commented out and a warning will be added.
Related EWIS
MSCEWI1076: Constants are not supported by Snowflake Scripting. It was transformed into a variable.
MSCEWI3051:
PRAGMA EXCEPTION_INITNot Supported.MSCEWI3098: The
NOT NULLconstraint is not supported in variable declarations inside procedures.MSCEWI3099: The exception code exceeds Snowflake Scripting limits.
Last updated
Was this helpful?