Issues and Troubleshooting
Learn more about the conversion issues in SnowConvert, and how to solve them.
This is a deprecated version of the SnowConvert documentation, please visit the official site HERE.
Before we get too far down the troubleshooting road, recall that we highly recommend that you go through our training labs in order to get the most out of SnowConvert.
Conversions of any large quantity of code will likely have a few errors and warnings. When using any of our tools, you can count on us to be your partner in resolving any errors you may encounter.
Below is a list of specific conversion issues for Teradata that you may see when you perform a conversion with SnowConvert along with a severity level for each. Some suggested solution paths based on the severity level will follow the list of codes.
Take a minute to read through the list and the troubleshooting tips to help diagnose some of the error codes you have encountered. If you have a question that cannot be answered here, please reach out! You can drop us an email at snowconvert-support@snowflake.com. This is a living list, so it will grow and change as SnowConvert evolves. Updates to issue and error handling will appear on this page, and will also appear in the release notes.
Issue Codes
Here is the list of issue codes that exist in the SnowConvert for the Teradata platform. A detailed description of each issue code with its respective severity level can be seen in the following table.
Code | Description | Severity |
---|---|---|
Recursive forward alias error | Medium | |
Interval type not supported | High | |
Collation not supported in trim functions, add original collation to function result to preserve it | Low | |
Invalid default value. | Low | |
Geo-Spatial not supported | Medium | |
Column name not supported. | Low | |
Output parameter translated as a return statement | Low | |
Cluster by performance review. | Low | |
Temporal column not supported. | Low | |
Uppercase not supported. | Low | |
Time zone not supported for time data type. | Low | |
Not supported by binary type. | Low | |
Column converted from Blob data type. | Low | |
Column converted from Clob data type. | Low | |
Set table not supported. | Low | |
Global temporary table not supported. | Low | |
Global temporary table trace not supported. | Low | |
Collation not supported in variant column. | Low | |
Converted to Varchar for current session default. | Low | |
Only Posix regex supported. | Low | |
Unsupported use of 'match_arg' parameter. | Low | |
Work or error table commented. | Low | |
Dynamic SQL statement may be unrecognized | Medium | |
Abort statement not supported | Low | |
Output format not supported | Low | |
Json fields are inserted in an ascending ordering | Low | |
Snowflake does not support Teradata built-in time dimensions column options | Low | |
Run file must contain python statements only | Low | |
Queue table not supported | Low | |
DBC reference not supported | Medium | |
The result may differ due to char type having a fixed length in Teradata | Low | |
Columns were reordered. | Medium | |
Columns may be reordered | Medium | |
Multistatement SQL not supported. | Low | |
Cast might implicate an automatic trimming with Substring function. | Low | |
STRING to STRING Cast might require to be changed to Substring function. | Low | |
DELETE ALL statement replaced to TRUNCATE | Low | |
Repeated label was renamed | Low | |
Input format not supported | Medium | |
Format in a table not supported | Low | |
TRUNC added to ensure integer | Medium | |
Binding time variables might require change in query | Low | |
Default decimal precision in convert timezone is three digits | Low | |
Warning lose of decimal precision in time | Low | |
VIEW Check Option Not Supported in Snowflake | Low | |
Temporary Table might have duplicated rows | Low | |
Function does not support argument with certain collation constraints | Medium | |
MSCEWI2048 | A function was not recognized by the conversion too | Low |
TPT-Statement not processed | Low | |
TRANSLATE function has different behavior in certain cases | Low | |
Teradata BYTES function results differs from Snowflake LENGTH function for byte columns | Low | |
Snowflake implicit conversion to numeric differs from Teradata and may fail for non-literal string values | Low | |
Snowflake does not support the period datatype, all periods are handled as varchar instead | Low | |
Teradata Database Temporal Table is not supported in Snowflake | Medium | |
Snowflake supported formats for TO_CHAR differ from Teradata and may fail or have different behavior | Low | |
Column added to the Select's columns to avoid errors when referencing strtok_split_to_table function. | Low | |
Binary data in NEW JSON is not supported | Low | |
Non-standard time zone offsets are not supported in Snowflake, rounded to nearest valid time zone | Low | |
Snowflake user default time zone may require configuration to match Teradata value | Low | |
Snowflake user default time zone may require configuration to match Teradata value | Medium | |
TD_UNPIVOT transformation requires column information that could not be found, columns missing in result | Medium | |
JSON value was not recognized due to invalid format | Medium | |
JSON path was not recognized | Medium | |
Unicode BMP escape is not supported | Low | |
Non Unique Primary Index is not supported in Snowflake | Low | |
The following identifier has one or more Unicode escape characters that are invalid in snowflake | Low | |
Snowflake does not support profiles, referencing role instead | Medium | |
ST_DISTANCE results are slightly different from ST_SPHERICALDISTANCE | Low | |
A return statement was added at the end of the label section to ensure the same execution flow | Medium | |
GOTO statement was replaced with the label section with the same name | Low | |
LABEL not found, GOTO statement was replaced with return statement | Low | |
Bash variables found, using SnowSQL with variable substitution enabled is required to run this script | Low | |
Period types are handled as two data fields | Low | |
The Snowflake error code mismatch the original Teradata error code | Low | |
The use of foreign tables is not supported in Snowflake | Medium | |
RESET WHEN clause is not supported in this scenario due to its condition | Medium | |
The Expand On clause functionality is transformed into a CTE block | Low | |
The required period type column was not found | Low | |
Non-literal delimiters with spaces need their backslash scaped in snowflake | Low | |
Translate function TO_UNICODE encoding is not required | Low | |
Translate function using the current encoding is not supported | Medium | |
Not able to transform two or more complex Select clauses at a time | Medium | |
Transaction and profile level query tags not supported in Snowflake, referencing session query tag instead | Medium | |
Redundant reference to a Table in UpdateStatement removed. | Low | |
Shell variables found, manually assigning values to the variables is required to run this script. | Low | |
GOTO statement was removed due to if statement inversion | Medium | |
LAYOUT was not found | Low | |
DML label was not found | Low | |
Conditions not found in the update statement for transformation | Low | |
Expression converted as cast with possible errors due to missing dependencies | Low |
How should you troubleshoot each error type? Troubleshooting is not an exact science, especially when it comes to complex code conversion. We’ve given you a description of each of the severity levels and some suggestions on how to handle each error type below.
Error Severity
Conversion errors happen. For Snowflake SnowConvert, errors are put into the following categories:
Regardless of the error severity, step 1 in troubleshooting a conversion is always to check the source code, especially if you receive a large number of errors. Ensure that it compiles in Teradata first. Oftentimes a misplaced quote or parenthesis could lead to an entire file not converting correctly.
Beyond that, please review the severity levels and information below. It’s worth reiterating that if you have a conversion that did not succeed, please reach out! We would love to hear from you.
Let’s look at each severity level and see what we recommend as the next steps.
Low
Low-level errors are not actually errors. They are considered warnings. In other words, we are confident the code as a whole was converted, and it will compile in Snowflake. However, some things may look different. For example, SnowConvert changes a CREATE SET TABLE statement to a CREATE TABLE statement. An issue will be logged with code MSCEWI2015 in the issues report, and a comment will be placed above the line where the original CREATE SET TABLE statement was written. The code was successfully converted, but there was a change made. The reason you would create a SET table in Teradata may still exist for your table in Snowflake, but Snowflake’s architecture does not support Set Tables. For 99%+ of all Set Tables we've seen, this transformation is sufficient and the output code is functionally equivalent. Having said that, we would still recommend that you take a look at the output to ensure that the standard table is functionally equivalent in Snowflake. We are confident that it will but would recommend that you still check on it.
Medium
Medium-level errors indicate that a small piece of an object did not convert correctly, such as a line of code in a table statement or a macro/procedure. Check the issues report finding the exact location of the error. Depending on the context, that line or statement may not be necessary or there may be an issue with the source code. There are some terms or elements that SnowConvert does not yet recognize, even though the tool receives regular updates and version releases. For these types of errors, the output is usually a commented-out version of the input. Check the line in the output, and determine if that will need a manual conversion or if it can be removed. If you are not sure what to do next, reach out!
High
A high-level error indicates that an entire object could not be converted. This will require you to evaluate the object in question (procedure, macro, join, and so on) and evaluate the source code. Most high-level conversion errors indicate there is information that simply did not make sense. The vast majority are resolved by updating the source code, not the output code. The remainder usually comes from a term that SnowConvert does not yet recognize. Post in the forums or send us an email so we can partner with you in solving this problem.
Critical
Critical errors are exceptionally rare (less than 1% of objects' error codes), but they do happen. A critical error will most likely cause SnowConvert to fail and a crash report screen to come up. Please give as much information as you can in the crash report screen so we can diagnose the issue. If a crash report screen does not appear, please check the issues report focusing on the critical errors. Though the program completely converted the code, the presence of critical errors could indicate there are other unrecognized errors as well. Hopefully and most likely, you will not find yourself in this situation. If you do, check the source code again, and let us know.
Need more support?
As has been mentioned previously in this article, please reach out to us if you need more support. Snowflake wants to be your partner in the conversion process, so let us know how we can help. You can email us at snowconvert-support@snowflake.com. If you have a contract for support with Snowflake, reach out to your sales engineer and they can direct your support needs.
Last updated