SnowConvert AI - Oracle Issues¶
SSC-EWI-OR0001¶
Sequence start value with ‘LIMIT VALUE’ is not supported by Snowflake.
Description¶
This error appears when the START WITH statement value is LIMIT VALUE.
In Oracle this clause is used only in ALTER TABLE
STARTWITHLIMIT VALUE, which is specific toidentity_options, can only be used withALTERTABLEMODIFY. If you specifySTARTWITHLIMIT VALUE, then Oracle Database locks the table and finds the maximum identity column value in the table (for increasing sequences) or the minimum identity column value (for decreasing sequences) and assigns the value as the sequence generator’s high water mark. The next value returned by the sequence generator will be the high water mark +INCREMENTBYintegerfor increasing sequences, or the high water mark -INCREMENTBYintegerfor decreasing sequences.
ALTER TABLE ORACLE (https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/ALTER-TABLE.html#GUID-552E7373-BF93-477D-9DA3-B2C9386F2877)¶
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0002¶
Columns from expression not found
Note
Some parts in the output code are omitted for clarity reasons.
Severity¶
High
Description¶
This error happens when the columns of a Select Expression were unable to be resolved, usually when it either refers to a Type Access whose reference wasn’t resolved or a column with a User Defined Type whose columns haven’t been defined; such as a Type Without Body or Object Type with no columns.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Verify that the type definition that was referenced does have columns within it.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0004¶
The used syntax in select is not supported in Snowflake.
Note
Some parts of the output code are omitted for clarity reasons.
Severity¶
High
Description¶
This warning happens when a clause in a select is not supported in Snowflake. The not supported clauses are:
CONTAINERS
HIERARCHIES
EXTERNAL MODIFY
SHARDS
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0005¶
BFILE/BLOB parameters are considered binary. A format may be needed.
Note
This EWI is deprecated, please refer to SSC-FDM-OR0043 documentation.
Severity¶
Low
Description¶
This error happens when a TO_CLOB is converted to a TO_VARCHAR function. A format may be needed for BFILE/BLOB parameters.
Example Code¶
Input Code: ¶
Generated Code:¶
Best Practices¶
Check if outputs in the input code and converted code are equivalent and add a format parameter if needed.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0006¶
It may be needed to set a TimeStampOutput format.
Note
This EWI is deprecated, please refer to SSC-FDM-OR0047 documentation.
Severity¶
Low
Description¶
TIMESTAMP_OUTPUT_FORMAT session parameter may need to be set to ‘DD-MON-YY HH24.MI.SS.FF AM TZH:TZM’ for timestamp output equivalence.
Example Code¶
Input Code: ¶
Example of default TIMESTAMP output in Oracle¶
Output
13-JAN-21 04.18.37.288656 PM +00:00
Generated Code:¶
Example of default TIMESTAMP output in Snowflake¶
Output
2021-01-13 08:18:19.720 -080
Best Practices¶
To change the timestamp output format in Snowflake use the following query:
ALTER SESSION SET TIMESTAMP_OUTPUT_FORMAT = 'DD-MON-YY HH24.MI.SS.FF AM TZH:TZM';If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0007¶
Create Type Not Supported in Snowflake
Description¶
This message is added when a Create Type statement not supported by Snowflake is used.
Example Code¶
Input Code (Oracle):¶
Generated Code:¶
Best Practices¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0008¶
Unknown format, it may have unexpected behavior.
Severity¶
Low
Description¶
This error is added for unknown date formats that may have unexpected behavior.
Example Code¶
Input Code:¶
Generated Code:¶
Note
Note that ‘iw-iyyy’’ is not a supported format.
Best Practices¶
Check for this documentation for the supported timestamp formats.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0009¶
JSON_TABLE is not supported.
Severity¶
High
Description¶
JSON_TABLE function is not currently supported.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
You can take advantage of the FLATTEN function in Snowflake to emulate the functionality of JSON_TABLE.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0010¶
Partitions Clauses are Handled by Snowflake. It requires manual fix
Note
Some parts of the output code are omitted for clarity reasons.
Severity¶
Critical
Description¶
This warning appears when the PARTITION and SUBPARTITION clauses appear within a query. Snowflake handle partitions automatically
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Manual change is required to get equivalent functionality in Snowflake. A
WHEREcondition is needed to filter the rows for the specific partition. However, with this workaround, performance is affected.If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0011¶
The format parameter is not supported.
Severity¶
Medium
Description¶
The format parameter is not currently supported by Snowflake for Cast functions in especial cases. For example, when we use “MONTH” or “DAY” inside the DATE or TIMESTAMP format.
Other scenario is when you are working with CAST function using NUMBER currently Snowflake need to have 4 arguments to show the decimal part, for now the output code not offer all arguments needed for Snowflake, you need to add the rest arguments for TO_NUMBER function.
Example Code¶
Input Code:¶
Generated Code:¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0013¶
NLS parameter is not supported.
Severity¶
Medium
Description¶
NLS parameter is not currently supported for the following functions:
TOCHAR
TODATE
TONUMBER
TOTIMESTAMP
CAST
Example Code¶
Input Code:¶
Generated Code:¶
SSC-EWI-OR0014¶
NLSSORT not supported.
Note
Some parts in the output code are omitted for clarity reasons.
Severity¶
Medium
Description¶
NLSSORT function is not currently supported in the body of a select.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
NLSSORT is converted to a user-defined function (UDF/Stub), so you can modify it to emulate the functionality.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0016¶
XML is not supported.
Severity¶
Medium
Description¶
The following XML related functions are not supported:
EXTRACT
EXTRACTVALUE
XMLSEQUENCE
XMLTYPE
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0020¶
Negative values not supported for function.
Severity¶
Medium
Description¶
Snowflake does not support negative values for the function, then this will cause different behavior when executed. This EWI is emitted when a function like INSTR uses a negative position parameter that cannot be automatically translated.
Note
INSTR with position = -1 is automatically translated to a functionally equivalent Snowflake expression and does not trigger this EWI. Only positions less than -1 (e.g., -3, -5) emit this warning.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Create a User Defined Function that can handle the negative parameter or look for another alternative.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0023¶
AGGREGATE function not supported.
Severity¶
High
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
This error is added when an aggregate function as
DENSE_RANK()
RANK()
PERCENT_RANK()
CUME_DIST()
is not supported in Snowflake.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0026¶
ROWID is not supported.
Note
Some parts in the output code are omitted for clarity reasons.
Severity¶
Medium
Description¶
ROWID statement is not currently supported.
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Best Practices¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0029¶
DEFAULT ON CONVERSION ERROR is not supported.
Description¶
Default on conversion error not supported in Snowflake
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
You might create UDF to emulate the behavior of
DEFAULTvalueON CONVERSION ERROR.If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0030¶
KEEP statement used in the aggregate function is not supported
Severity¶
Medium
Description¶
This error appears to advertise that the KEEP statement used to indicate that only the first or last values of the aggregate function will be returned is not supported
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0031¶
SYS_CONTEXT parameter is not supported.
Severity¶
Low
Description¶
This error happens when a SYS_CONTEXT function parameter is not supported. Snowflake support similar context functions, check the page to more information
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
The function is converted to a user defined function(stub), so you can modify it to emulate the behavior of the SYS_CONTEXT parameter.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0032¶
Parameter with the specified format is not supported.
Severity¶
Medium
Description¶
This error happens when a parameter in a function is not supported.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
The function is converted to a user defined function(stub), so you can modify it to emulate the behavior of the parameter.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0033¶
PL/SQL declaration in WITH is not supported.
Severity¶
Medium
Description¶
PL/SQL declarations in WITH statements are not supported.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0035¶
The table function is not supported when it is used as a collection of expressions.
Note
Some parts in the output code are omitted for clarity reasons.
Severity¶
Medium
Description¶
TABLE function is not supported in Snowflake when it is used as a collection of expressions.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0036¶
Types resolution issues, the arithmetic operation may not behave correctly between string and date.
Severity¶
Low
Description¶
This issue happens when an arithmetic operation may not behave correctly between two certain data types.
Example Code¶
Input Code:¶
Generated Code:¶
Note
Note that the operation between a String and Date may not behave correctly.
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0038¶
Search clause removed from the with element statement.
Severity¶
Low
Description¶
The search_clause (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__I2077142) is employed to define the order in which rows are processed in a SELECT statement. This functionality allows for a customized traversal of the data, ensuring that the results are returned in a specific sequence based on the specified criteria. It is important to note, however, that this behavior, characterized by the search_clause (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__I2077142), is not supported in Snowflake.
In databases such as Oracle, the search_clause (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__I2077142) is commonly used in conjunction with recursive queries or common table expressions (CTEs) to influence the sequence in which hierarchical data is explored. By designating a particular column or set of columns in the search_clause (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__I2077142), you can control the depth-first or breadth-first traversal of the hierarchy, impacting the order in which rows are processed.
In Snowflake, search_clause (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__I2077142) message will be generated, and the search_clause (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__I2077142) is subsequently eliminated.
Example Code¶
Input Code:¶
Generated Code:¶
Recommendation¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0039¶
The nocycle clause is not supported in Snowflake.
Note
Some parts in the output code are omitted for clarity reasons.
Severity¶
Low
Description¶
This message is shown when SnowConvert AI finds a query with a NOCYCLE clause, which is not supported in Snowflake.
This clause marks when there is a recursion.
For more details see the documentation (https://docs.oracle.com/en/database/oracle/oracle-database/23/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__GUID-8EE64250-3C9A-40C7-A81D-46695F8B2EB9) about the clause functionality.
Example Code¶
Connect By¶
Input Code:¶
Generated Code:¶
Best Practices¶
If there are cycles in the data hierarchy, you can review this article to deal with them.
If you need more support, you can email us at snowconvert-support@snowflake.com.
Please review the following link for manual workaround: https://community.snowflake.com/s/article/NOCYCLE-workaround (https://community.snowflake.com/s/article/NOCYCLE-workaround)
SSC-EWI-OR0042¶
Model clause is not supported.
Note
Some parts in the output code are omitted for clarity reasons.
Severity¶
Low
Description¶
This message is shown when SnowConvert AI finds a query with a MODEL clause, which is not supported in Snowflake.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0045¶
Cast type L and FML is not supported
Severity¶
Medium
Description¶
This issue happens when trying to cast using FML or L format that is not applicable in Snowflake, then the code is commented out and this message is being added.
Example Code:¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0046¶
Alter Table syntax is not applicable in Snowflake.
Note
This EWI is deprecated, please refer to SSC-EWI-0109 documentation
Severity¶
Medium
Description¶
The Alter Table syntax used is not applicable in Snowflake, then the code is commented out and this message is being added.
Example Code:¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0047¶
TO_NCHAR transformed to TO_VARCHAR, it may not be compilable in Snowflake.
Severity¶
Low
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
This warning is added when the function TO_NCHAR was found and it was transformed into a TO_VARCHAR function.
There are multiple cases where the transformation causes a compilation error, or the output is not the same.
Example Code¶
Input Code:¶
Generated Code:¶
The example from above will result in an error if it is used in Snowflake.
Not all cases are causing errors.
Input Code:¶
Generated Code:¶
The last example does not cause an error in Snowflake, and the output is equivalent if executed.
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0049¶
Package constants in stateful package are not supported yet.
Severity¶
Critical
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
This warning is added when there is a member of a Stateful Package that is not supported yet.
This feature is planned to be delivered in the future.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0050¶
Input Expression is out of the range
Severity¶
Medium
Description¶
This issue happens when trying to cast an input value that is out of range. It means the precision values are not applicable in Snowflake, then the code is commented out and this message is being added.
Example Code:¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0051¶
PRAGMA EXCEPTION_INIT is not supported.
Severity¶
Low
Description¶
This EWI is added when PRAGMA EXCEPTION_INIT function is invoked within a procedure. Exception Name and SQL Code of the exceptions are set in the RAISE function. When it is converted to Snowflake Scripting, the SQL Code is added to the Exception declaration, however, some code values may be invalid in Snowflake Scripting.
Example Code ¶
Input Code:¶
Generated Code:¶
Snowflake script¶
Best Practices¶
No end-user action is required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0052¶
Exception declaration is handled by the raise function.
Severity¶
Low
Note
Some parts of the output code are omitted for clarity reasons.
Note
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or --PLTargetLanguage JavaScript
Description¶
Exceptions can be defined in both languages, Oracle and Snowflake, but the RAISE function is designed to do declaration, assignment, and throw the error. This is why the Exception declaration is commented out and the warning is displayed.
Example Code¶
Input Code:¶
Generated Code:¶
Note
Some parts of the output code are omitted to improve readability.
Best Practices¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0053¶
Incorrect input format
Severity¶
Medium
Description¶
This issue happens when trying to cast using a wrong input format, then the code is commented out and this message is being added.
Example Code:¶
Input Code:¶
Generated Code:¶
Best Practices¶
No additional user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0057¶
Transformation for nested procedure or function is not supported in this scenario.
Severity¶
Critical
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
Translation of nested functions inside other functions or procedures is not supported. Similarly, procedures nested within functions or anonymous blocks are not currently supported.
However, nested procedures within other procedures or packages are supported. For additional details, see the Nested Procedures Documentation.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0067¶
Multiple constraint definition in a single statement is not supported in Snowflake.
Severity¶
Medium
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
Multiple Constraint Definition in a single ALTER TABLE statement is not supported in Snowflake.
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Best Practices¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0068¶
The sequence start value exceeds the max value allowed by Snowflake.
Severity¶
Medium
Description¶
This error appears when the START WITH statement value exceeds the maximum value allowed by Snowflake. What Snowflake said about the start value is: Specifies the first value returned by the sequence. Supported values are any value that can be represented by a 64-bit two’s complement integer (from -2^63 to 2^63-1). So according to the previously mentioned, the max value allowed is 9223372036854775807 for positive numbers and 9223372036854775808 for negative numbers.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
It can be recommended to just reset the sequence and modify its usage too. NOTE: the target column must have enough space to hold this value.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0069¶
The sequence CURRVAL property is not supported in Snowflake.
Severity¶
Medium
Description¶
The sequence CURRVAL property is not supported in Snowflake.
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Best Practices¶
You can check this link to see what Snowflake suggests to handle situations where the CURRVAL property is used.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0070¶
Binary Operation Not Supported
Severity¶
Medium
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
A binary operation is not currently supported, a user-defined function is added.
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Best Practices¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0071¶
Set Quantifier Not Supported
Severity¶
Low
Description¶
Quantifier ‘all’ is not supported in Snowflake. The modifier is removed from the source code, and a warning is added; the resulting code may behave unexpectedly.
Example Code¶
Input Code:¶
Generated Code:¶
In Snowflake, the INTERSECT and MINUS/EXCEPT operators will always remove duplicate values.
Best Practices¶
Check alternatives in Snowflake to emulate the functionality of the “all” quantifier. Below is a workaround for
MINUS ALLandEXCEPT ALL.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0072¶
Procedural Member not supported
Severity¶
Medium
Note
Some parts of the output code are omitted for clarity reasons.
Note
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
Description¶
A procedural member is not currently supported. Example of procedural members:
Constant declarations.
Cursor declarations.
Pragma declarations.
Variable declarations.
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Best Practices¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0075¶
Labels in statements not supported
Severity¶
Medium
Note
Some parts of the output code are omitted for clarity reasons.
Note
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or –PLTargetLanguage JavaScript
Description¶
Labels in statements not supported to reference a code block.
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Best Practices¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0076¶
Built In Package Not Supported.
Severity¶
Medium
Description¶
Translation for built-in packages is not currently supported.
Example Code¶
Input Code (Oracle):¶
Generated Code:¶
Best Practices¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0078¶
Unable to parse dynamic SQL statement inside Execute Immediate.
Severity¶
Medium
Description¶
SnowConvert AI could not parse the dynamic SQL statement inside the Execute Immediate.
Note
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or --PLTargetLanguage JavaScript
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Best Practices¶
Check the dynamic SQL statement for any syntax error.
Review the SnowConvert AI documentation to see if the statement is still unsupported.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0082¶
Cannot Convert Nested Type Attribute Expression
Note
Some parts of the output code are omitted for clarity reasons.
Severity¶
Medium
Description¶
This error message appears when a query, like a select, tries to access an attribute within a column that was defined as a type. These cannot be automatically converted, but they can be quickly converted by hand.
Example Code:¶
Input Code Oracle:¶
Generated Code:¶
Best Practices¶
The code can be manually fixed by changing the ‘.’ accessor for the ‘:’ wherever a type column is being accessed.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0087¶
Ordering of the Outer Joins failed
Severity¶
Low
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
This issue happens when an error occurred while reordering the new ANSI JOIN clauses in a query that previously had outer joins with the (+) operator. A query with a cycle of tables joining each other in the WHERE clause can provoke this issue.
When this EWI is present, the JOIN clauses may not work properly due to their order.
Example Code¶
Input Code Oracle:¶
Generated Code:¶
Make sure the query is valid and does not have tables that are being joined to each other.
If the issue still occurs, try qualifying the name of each column in the WHERE clause with the name of the table.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0089¶
REGEXP_LIKE_UDF match parameter may not behave correctly
Note
This EWI is deprecated, please refer to SSC-FDM-OR0044 documentation.
Severity¶
Low
Description¶
This warning appears when the Oracle REGEXP_LIKEcondition comes with the third parameter (match parameter). The reason to add the warning is that the REGEXP_LIKE_UDFused to replace the REGEXP_LIKEdoes not recognize all the characters used by the match parameter, so the result of the query in Snowflake may not be equivalent to Oracle.
Example Code¶
Input Code Oracle:¶
Generated Code:¶
When the
REGEXP_LIKEcondition includes characters that are not supported by the user-defined function, you can change the regular expression to simulate the behavior of the missing character in the match parameter. For more information about unsupported characters, see REGEXP_LIKE_UDF.For additional support, contact Snowflake at snowconvert-support@snowflake.com.
SSC-EWI-OR0090¶
Non-Ansi Outer Join has an invalid Between predicate
Severity¶
Medium
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
This issue happens when there is an OUTER JOIN with the (+) operator inside a BETWEEN clause that cannot be executed in Snowflake. This generally happens when multiple tables are used in the interval of the BETWEEN clause.
Example Code¶
Input Code Oracle:¶
Generated Code:¶
Best Practices¶
Manually change the Outer Join to ANSI syntax.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0092¶
NUMBER datatype negative scale was removed from output
Severity¶
Low
Description¶
This issue happens when a NUMBER with a negative scale is being used to apply rounding to the NUMBER. Snowflake does not support this feature, and this message is used to indicate that the Scale was removed.
Example Code¶
Input Code Oracle:¶
Queries¶
Result¶
Generated Code:¶
Queries¶
Result¶
Best Practices¶
No end-user action is required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0095¶
Operation Between Interval Type and Date Type not Supported
Severity¶
Low
Description¶
INTERVAL YEAR TO MONTH and INTERVAL DAY TO SECOND are not a supported data type, they are transformed to VARCHAR(20). Therefore all arithmetic operations between Date Types and the original Interval Type Columns are not supported.
Furthermore, operations between an Interval Type and Date Type (in this order) are not supported in Snowflake; and these operations use this EWI as well.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Implement the UDF to simulate the Oracle behavior.
Extract the already transformed value that was stored in the column during migration, and use it as a Snowflake Interval Constant when possible.
If you need more support, you can email us at snowconvert-support@snowflake.com
¶
SSC-EWI-OR0097¶
Procedure Properties are Not Supported in Snowflake Procedures
Severity¶
Low
Description¶
Oracle CREATE PROCEDURE additional properties are not required and have no equivalent by Snowflake CREATE PROCEDURE.
Example Code¶
Input Code Oracle:¶
Generated Code:¶
Best Practices¶
No end-user action is required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0099¶
The exception code exceeds the Snowflake Scripting limit
Severity¶
Low
Description¶
This EWI appears when an exception declaration error code exceeds the Snowflake Scripting exception number limits. The number must be an integer between -20000 and -20999.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Check if the exception code is between the limits allowed by Snowflake Scripting, if not change it for another exception number available.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0100¶
For Loop With Multiple Conditions Is Currently Not Supported By Snowflake Scripting. Only First Condition Is Used
Severity¶
Low
Description¶
Oracle allows multiple conditions in a single FOR LOOP however, Snowflake Scripting only allows one condition per FOR LOOP. Only the first condition is migrated and the others are ignored during transformation.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Separate the
FOR LOOPinto different loops or rewrite the condition.If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0101¶
Specific For Loop Clause Is Currently Not Supported By Snowflake Scripting
Severity¶
Low
Description¶
Oracle allows additional clauses to the FOR LOOP condition. Like the BY, WHILE, and WHEN clauses. Both WHILE and WHEN clauses allow for an extra boolean expression as a condition. While the BY clause allows a stepped increment in the iteration. These additional clauses are not supported in Snowflake Scripting and are ignored during transformation.
Example Code¶
Input Code Oracle:¶
Generated Code:¶
Best Practices¶
Separate the
FOR LOOPinto different loops or rewrite the condition.If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0103¶
For Loop Format Is Currently Not Supported By Snowflake Scripting
Severity¶
High
Description¶
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.
Oracle iteration control clauses (https://docs.oracle.com/en/database/oracle/oracle-database/21/lnpls/iterator.html#GUID-BD211E6F-8B4A-494A-AECF-AC26A241FF98) that are not supported in Snowflake FOR LOOP:
single_expression_controlvalues_of_controlindices_of_controlpairs_of_control
Danger
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;
Example Code¶
Input Code Oracle:¶
Generated Code:¶
Best Practices¶
Rewrite the
FOR LOOPcondition or use a different kind ofLOOPto simulate the behavior.If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0104¶
Unusable collection variable
Severity¶
High
Description¶
Oracle collections are not currently supported by SnowConvert AI, all the collection types variables and their usages will be commented out.
Note
Generate Procedures and Macros using JavaScript as the target language adding the following flag -t JavaScript or --PLTargetLanguage JavaScript
Example Code¶
Input Code Oracle:¶
Output Cod¶
Best Practices¶
No end-user action is required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0105¶
Additional work is needed for BFILE column usage. BUILD_STAGE_URL function is a recommended workaround
Severity¶
Low
Description¶
The transformation for BFILE datatype is VARCHAR. However, the translation for the Oracle built-in functions used to interact with BFILE types is currently not supported. The column is migrated to a VARCHAR to store the file path and name. For more information, see the BFILENAME_UDF documentation.
Note
The BUILD_STAGE_FILE_URL function is a recommended workaround to work with files in Snowflake. It returns a link to the specified file stored in a stage. See the BUILD_STAGE_FILE_URL function documentation.
Example Code¶
Input Code Oracle:¶
Generated Code:¶
Best Practices¶
Use the
BUILD_STAGE_FILE_URLand the other file functions to handle files.
Snowflake Query¶
Result¶
Note
This function works with different cloud storage options, but for information regarding using local files with stages, check this documentation.
Change the data type to a supported type.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0108¶
The Following Assignment Statement is Not Supported by Snowflake Scripting
Note
Some parts in the output code are omitted for clarity reasons.
Severity¶
Medium
Description¶
Some Oracle variable types do not have a direct translation in Snowflake. Currently, transformation for cursor, collection, record, and user-defined type variables; as well as placeholders, objects, and output parameters are not supported by Snow Scripting.
Changing these variables to Snowflake semi-structured data types could help as a workaround in some scenarios.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Change the variable data type or try to simulate the behavior using Snowflake semi-structured data types.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0109¶
Expressions as arguments of Using Clause are not supported by Snowflake Scripting
Severity¶
Medium
Description¶
Oracle supports using expressions as arguments to any USING Clause for the EXECUTE IMMEDIATE statements. This functionality is not supported by Snowflake Scripting.
Snowflake Scripting does support variable expressions, and this it is possible to replace the expression by manually assigning it to a variable (see example below).
Example Code¶
Input Code:¶
Generated Code:¶
Manually migrated Execute Immediate procedure:¶
Replacing this procedure with the one above will solve the compilation error, and yield the same results as Oracle.
Best Practices¶
Procedures can be manually migrated by adding a variable and then assigning the expression to said variable.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0110¶
For Update Clause is not supported in Snowflake
Note
Some parts in the output code are omitted for clarity reasons.
Severity ¶
High
Description ¶
There is no equivalent for FOR UPDATE clause in Snow Scripting so an EWI is added and the clause is commented out
Example Code ¶
Input Code:¶
Generated Code:¶
Best Practices¶
Handle the column update in the
UPDATE/DELETEquery for more details check SSC-EWI-OR0136.If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0116¶
Operations between Intervals are not supported
Severity¶
Medium
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
This error is added when there is an arithmetical operation whose operands are only intervals, this kind of operation is not supported by Snowflake.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Depending on where the operation is located, it could be relocated and made valid by adding dates or timestamps.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0118¶
Built-In Views/Tables are not supported by Snowflake
Severity¶
Medium
Description¶
Oracle has a set of built-in views and tables (https://docs.oracle.com/en/database/oracle/oracle-database/21/refrn/static-data-dictionary-views-1.html#GUID-41B62782-83FA-4066-8C56-0D0B66CC0EC7), that are not present in Snowflake, SnowConvert AI adds an error message to queries and statements that use these elements.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Some information provided by Oracle Built-In views, can be found in Snowflake Information Schema or using SHOW command.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0121¶
Using DBMS_LOB.SUBSTR built-in package with a BFILE column is not supported in Snowflake
Severity¶
Medium
Description¶
Oracle BFILE columns are migrated to VARCHAR in Snowflake. The file name is stored as a string in the new column. Therefore, using a SUBSTR function, in Snowflake, on the migrated column will return a substring of the file name. While Oracle DBMS_LOB.SUBSTR will return a substring of the file content. For more information review BFILE data type.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
To handle files with Snowflake, see the UTL_FILE handling documentation.
For additional support, contact SnowConvert at snowconvert-support@snowflake.com.
SSC-EWI-OR0123¶
Database Link connections not supported
Severity¶
Medium
Description¶
A database link connection reference was removed from the object name because the database links and its references are not supported in Snowflake. The only part that is kept is the name before the @ character.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
It is important to check that all DB Links have different names, if two DB Links share the same and the code is migrated multiple times, then the EWI can change de information based on what DB Link is processed first.
Move the database objects from the database link reference into the same database instance that is being used in Snowflake.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0126¶
Unusable object because its built-in custom type is not supported
Severity¶
Medium
Description¶
This error appears to indicate whether an object with a built-in custom type is being used.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0128¶
Boolean cursor attribute is not supported.
Note
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 |
|---|---|
|
Can be emulated |
|
Can be emulated |
|
Not Supported |
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0129¶
TYPE attribute could not be resolved.
Severity¶
Low
Note
Some parts of the output code are omitted for clarity reasons.
Description¶
This warning appears when the TYPEattribute referenced item could not be resolved and the referencing item’s data type could not be obtained. So the VARIANTdata type will be assigned instead.
Example Code¶
Input Code:¶
Generated Code:¶
Best Practices¶
Check for the referenced item data type and replace it manually in the referencing item TYPE attribute.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0133¶
Cursor variable has already been assigned
Severity¶
Medium
Description¶
When an OPEN FOR statement is converted, a cursor assignment with the same name as the cursor variable used in the input code is added along with other statements to emulate its functionality. Since it is possible to use multiple OPEN FOR statements with the same cursor variable, there will be multiple cursor assignments with the same name in the output code. Leaving the output code as it is will cause compilation errors when executed in Snowflake.
Example code¶
Input code¶
Generated Code¶
Related EWI¶
SSC-EWI-0030: The statement below has usages of dynamic SQL.
Best Practices¶
To solve the compilation errors of the output code the cursor assignments that have the SSC-EWI-OR0133 message should be renamed.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0135¶
Data Retention Period May Produce No Results
Severity¶
Low
Description¶
If a query is executed in Snowflake using time travel, it could return no results if the specified time is no longer in the range of the data retention period. We recommend to read more about Snowflake’s Time Travel.
Example code¶
Input code¶
Generated Code¶
Best Practices¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0136¶
Current of clause is not supported in Snowflake
Severity¶
Critical
Description¶
Some statements like UPDATE and DELETE can use have a CURRENT OF clause inside the WHERE clause, this is not currently supported by Snowflake.
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Related EWI¶
SSC-EWI-OR0036: Types resolution issues, the arithmetic operation may not behave correctly between string and date.
SSC-PRF-0004: This statement has usages of cursor for loop.
SSC-EWI-OR0110: For Update Clause is not supported in Snowflake.
Best Practices¶
Redesign the query to normal
UPDATEorDELETEspecifying the columns in theWHEREclause, consider that if there are duplicate records in the table the query can affect them multiple times.If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0137¶
Type attribute reference might be unsupported, so it was transformed to variant data type.
Severity¶
Critical
Description¶
TYPE ATTRIBUTE ‘TYPEUSED%TYPE’ MIGHT BE UNSUPPORTED, SO IT WAS TRANSFORMED TO VARIANT
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Best Practices¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-EWI-OR0138¶
STANDARD_HASH with dynamic algorithm parameter cannot be converted.
Severity¶
Low
Description¶
This error is added when the STANDARD_HASH function uses a dynamic (non-literal) algorithm parameter, such as a variable or expression. SnowConvert AI cannot determine the target hash function at compile time because the algorithm must be a string literal ('SHA1', 'SHA256', 'SHA384', 'SHA512', or 'MD5').
The function is left unconverted and the user must manually resolve the algorithm at runtime.
Example Code¶
Oracle:¶
Snowflake Scripting:¶
Related EWI¶
SSC-FDM-OR0032: StandardHash function with input non-string parameter generates a different result in Snowflake.
Best Practices¶
Replace the dynamic algorithm parameter with a string literal (e.g.,
'SHA256') so SnowConvert AI can determine the correct Snowflake hash function.If the algorithm must be dynamic at runtime, manually convert the
STANDARD_HASHcall to aCASEexpression that maps each algorithm to the corresponding Snowflake function (SHA1,SHA2,MD5).If you need more support, you can email us at snowconvert-support@snowflake.com