SnowConvert AI - General Functional Differences¶
SSC-FDM-0001¶
Views selecting all columns from a single table are not required in Snowflake
备注
Some parts of the output code are omitted for clarity reasons.
描述¶
Views that only select all columns of a single table and do not have any filtering clauses are not required in Snowflake and may affect performance.
代码示例¶
输入代码 (Oracle):¶
生成的代码:¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0002¶
Correlated Subquery May Have Functional Differences
描述¶
This message is reported when a Correlated Subquery (subquery that refers to a column from the outer query) is located. This type of subqueries can, in some cases, present some functional differences in Snowflake (Working with Subqueries).
代码示例¶
输入代码:¶
生成的代码:¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0003¶
Conversion Rate Inconsistency
描述¶
This message is reported when a conversion rate inconsistency is found on the assessment field specified. These situations are resolved automatically by SnowConvert AI, so this is just an informative warning.
备注
This Informative warning will only be visible in the assessment documents and not the output code
最佳实践¶
Despite SnowConvert AI's ability to automatically fix the issue, you can still notify the SnowConvert AI support team by emailing snowconvert-support@snowflake.com and specifying the issue.
SSC-FDM-0004¶
External table translated to regular table
描述¶
This warning is added to clauses related to external handling. Snowflake recommends that all data should be managed inside the Snowflake data storage. For more information on this subject, see the Snowflake data storage considerations.
代码示例¶
输入代码:¶
生成的代码:¶
最佳实践¶
The data stored in files of the external tables must be somehow moved into the Snowflake database.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0005¶
TIME ZONE not supported for time data type
描述¶
The Time data type in Snowflake does not store Timezone values
TIME internally stores “wallclock” time, and all operations on TIME values are performed without taking any time zone into consideration. For more information, see the Snowflake TIME data type documentation.
示例代码¶
输入代码:¶
生成的代码:¶
最佳实践¶
No end-user action is required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0006¶
Number type column may not behave similarly in Snowflake
描述¶
This functional difference message appears when a NUMBER Type column is being created within a Table. The reason for this is due to arithmetic differences when performing operations related to the scales of intermediate values in Snowflake which could make some operations fail. For more information please refer to Snowflake's post on intermediate numbers in Snowflake (https://community.snowflake.com/s/question/0D50Z00008HhSHCSA3/sql-compilation-error-invalid-intermediate-datatype-number7148) and Number out of representable range (https://community.snowflake.com/s/article/Number-out-of-representable-range-error-occurs-during-the-multiplication-of-numeric-values).
To avoid these arithmetic issues, you can run data samplings to verify the needed precision and scales for these operations.
示例代码¶
包含数字列的简单表¶
输入代码 (Oracle):¶
生成的代码:¶
Arithmetic Issue Examples¶
The next examples show how the arithmetic issues can happen when using Number columns:
存在除法错误的 Snowflake 代码:¶
存在乘法错误的 Snowflake 代码:¶
When running either SELECT statements Snowflake will return an error:
Number out of representable range: type FIXEDSB16{nullable}, value 1.0000000000000000000
This is due to the intermediate operation's result overflowing Snowflake's maximum capacity; reducing the number scales by 1 on each example will fix the error and work normally:
包含除法的 Snowflake 代码:¶
包含乘法的 Snowflake 代码:¶
For this reason, SnowConvert AI sets the default scale of Numbers to 18, minimizing the number of errors when migrating.
最佳实践¶
Verify that your operations' intermediate values don't exceed a scale of 37, as that is Snowflake's maximum.
Run Data Samplings on your data, to make sure you have the required precision and scales before running any operations.
In most cases, after doing some data sampling or discussing with the business you might come to the conclusion that the precision can be different. For example, for
MONEYcolumns a typical precision isNUMBER(20,4). In snowflake you cannot easily alter a column data type, you can check this post on our forum (https://www.mobilize.net/blog/how-to-alter-column-datatype-in-snowflake) which provides some guidance on how to alter your columns data types and preserve your data.If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0007¶
Element with missing dependencies
备注
Some parts of the output code are omitted for clarity reasons
描述¶
There is a missing dependency for an object, Snow Convert could not resolve some data types. Also there exists a possibility to have a deployment error if the dependency was not in the source code.
示例代码¶
输入代码:¶
生成的代码:¶
备注
Note that the TABLE1 definition is missing.
最佳实践¶
Make sure all the dependencies of the objects are in the source code.
If not, find the references to the object in the code and check if the operations are well managed.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0008¶
On Commit not supported
备注
Some parts of the output code are omitted for clarity reasons.
描述 ¶
The ON COMMIT clauses in your CREATE TABLE statement have been commented out. Snowflake does not support the ON COMMIT clause, as it's typically used for temporary tables in other SQL dialects. If you need to manage transaction-specific behavior, consider using Snowflake's transactions or temporary tables with explicit TRUNCATE or DROP statements instead.
示例代码¶
输入代码¶
生成的代码¶
SSC-FDM-0009¶
GLOBAL TEMPORARY TABLE functionality not supported.
描述 ¶
Global temporary tables are considered a complex pattern, due to the fact they can come in several variations, as indicated in Snowflake's documentation.
示例代码¶
输入代码¶
生成的代码¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0010¶
Type changed to Date.
描述 ¶
This message is shown when SnowConvert AI finds a DEFAULT SYSDATE and the data type is NOT a DATE or TIMESTAMP datatype. In this case, the data type is changed to DATE.
示例代码¶
输入代码¶
生成的代码¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0011¶
Column Name Is Snowflake Reserved Keyword.
备注
This FDM is deprecated, please refer to SSC-EWI-0045 documentation.
描述 ¶
Column names that are valid for the source language but are reserved keywords in Snowflake.
示例代码¶
输入代码 (Oracle):¶
生成的代码:¶
最佳实践¶
Consider renaming the columns that use names that are not supported in Snowflake.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0012¶
Constraint Name in some constraints is not Supported.
描述 ¶
This message is added when a constraint is of type Null, Not Null, or default and was defined with a name. Snowflake does not support the name in those constraints. For that, SnowConvert AI will remove it and add the comment.
示例代码¶
输入代码¶
生成的代码¶
最佳实践¶
No end-user action is required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0013¶
Timezone expression could not be mapped
描述 ¶
This FDM message is added to indicate scenarios where the actual value of a timezone expression cannot be determined, and therefore, the translated results might be different. When the timezone value used is a literal string, SnowConvert AI can take it and map it to its corresponding timezone value in Snowflake. However, when this value is specified by an expression, SnowConvert AI cannot get the timezone value that will be used at runtime and, therefore, cannot map this value to its corresponding Snowflake equivalent.
示例代码¶
输入代码 (Oracle)¶
生成的代码¶
Input Code (Teradata)¶
生成的代码¶
¶
备注
Timezone Compatibility in Oracle
The majority of timezone name expressions in Oracle are directly supported in Snowflake, when this is the case, the migration will run without issues. Additionally, here is a list of which ones are not supported by Snowflake at the moment, and therefore will include the functional difference message.
Africa/Doula
Asia/Ulaanbaator
Asia/Yetaterinburg
Canada/East-Saskatchewan
CST
PST
US/Pacific-New
最佳实践¶
No end-user action is required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0014¶
Check statement not supported.
备注
This FDM is deprecated, please refer to SSC-EWI-0035 documentation.
描述¶
CHECK constraint is not supported by Snowflake but it does not affect functionally.
示例代码¶
Oracle 输入代码:¶
Generated Code: ¶
Input Code Teradata: ¶
Generated Code: ¶
输入代码 SqlServer¶
生成的代码:¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0015¶
Referenced custom type in query not found.
描述 ¶
This error happens when the definition for a Custom Type was not found or an Oracle built-in data type was not recognized by SnowConvert.
示例代码¶
输入代码 (Oracle):¶
生成的代码:¶
最佳实践¶
Verify that the type that the referenced data type was defined in the input code.
Check the Snowflake data types documentation to find an equivalent for the data type.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0016¶
Constants are not supported by Snowflake Scripting. It was transformed to a variable.
描述 ¶
Snowflake Scripting does not support constants. Therefore, all constants inside procedures are being transformed into variables when the Snowflake Scripting flag is active.
示例代码¶
Oracle:¶
Snowflake Scripting:¶
最佳实践¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0017¶
WITH SYSTEM VERSIONING clause is not supported by Snowflake
描述¶
The WITH SYSTEM VERSIONING clause in ANSI SQL is used to enable system versioning for a table, allowing you to maintain a history of changes to the table's data over time. This clause is not supported by Snowflake.
代码示例¶
输入代码:¶
生成的代码:¶
最佳实践¶
You can use Time Travel in Snowflake, Time Travel enables accessing historical data (that is, data that has been changed or deleted) at any point within a defined period. It serves as a powerful tool for performing the following tasks:
Restoring data-related objects (tables, schemas, and databases) that might have been accidentally or intentionally deleted.
Duplicating and backing up data from key points in the past.
Analyzing data usage/manipulation over specified periods of time.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0018¶
CHARACTER SET clause is not supported by Snowflake.
描述¶
The column option CHARACTER SET determines the allowed set of characters that can be stored in the column, this clause is not supported by Snowflake.
代码示例¶
输入代码:¶
生成的代码:¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0019¶
Semantic information could not be loaded.
描述¶
This warning lets the user know that SnowConvert AI was not able to load semantic information for a specific object. This is most likely caused because if there is a duplicated object with the same name, SnowConvert AI could not load the semantic information of this object and complete the analysis.
示例代码¶
Input Code:¶
Generated Code: ¶
最佳实践¶
Check for duplicate objects in the input code since this may affect the loading of semantic information.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0020¶
Multiple result sets are returned in temporary tables
描述¶
Snowflake Scripting procedures only allow one result set to be returned per procedure.
To replicate Teradata behavior, when there are two or more result sets to return, they are stored in temporary tables. The Snowflake Scripting procedure will return an array containing the name of the temporary tables.
示例代码¶
输入代码 (Teradata):¶
生成的代码:¶
最佳实践¶
To obtain the result sets, it is necessary to run a SELECT query with the name of the temporary tables returned by the procedure.
As much as possible, avoid procedures that return multiple result sets; instead, make them single-responsibility for more direct results.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0021¶
Create Index Not Supported
描述¶
Due to architectural reasons, Snowflake does not support indexes so, SnowConvert AI will comment out all the code related to the creation of indexes. Snowflake automatically creates micro-partitions for every table that help speed up the performance of DML operations, the user does not have to worry about creating or managing these micro-partitions.
Usually, this is enough to have a very good query performance however, there are ways to improve it by creating data clustering keys. Snowflake's official page provides more information about micro-partitions and data clustering.
示例代码¶
输入代码 (Oracle):¶
生成的代码:¶
最佳实践¶
Data clustering might be a way to speed up query performance on tables.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0022¶
Window frame unit was changed to Rows
严重性¶
Low
描述¶
This warning is added when an unsupported Window Frame Unit was changed into Rows, leading to output differences. One example of this is the GROUPS unit, which is not supported by Snowflake.
Please note that this message is also used in cases where a Window Frame Unit is partially unsupported leading to it being changed, like the RANGE unit.
示例代码¶
Given the following data as an example to explain it.
C_NAME |
C_BIRTH_DAY |
|---|---|
USA |
1 |
USA |
4 |
波兰 |
9 |
加拿大 |
10 |
USA |
5 |
加拿大 |
12 |
哥斯达黎加 |
3 |
波兰 |
4 |
USA |
2 |
哥斯达黎加 |
7 |
哥斯达黎加 |
10 |
Oracle:¶
Code¶
SELECT
C_NAME,
SUM(C_BIRTH_DAY)
OVER (ORDER BY C_BIRTH_DAY
RANGE BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING) AS MAX1
FROM WINDOW_TABLE;
Result¶
C_NAME |
MAX1 |
|---|---|
USA |
- |
USA |
1 |
哥斯达黎加 |
3 |
USA |
6 |
波兰 |
6 |
USA |
14 |
哥斯达黎加 |
19 |
波兰 |
26 |
加拿大 |
35 |
哥斯达黎加 |
35 |
加拿大 |
55 |
Snowflake:¶
Code¶
Result¶
C_NAME |
MAX1 |
|---|---|
USA |
- |
USA |
1 |
哥斯达黎加 |
3 |
USA |
6 |
波兰 |
10 |
USA |
14 |
哥斯达黎加 |
19 |
波兰 |
26 |
加拿大 |
35 |
哥斯达黎加 |
45 |
加拿大 |
55 |
最佳实践¶
Ensure deterministic ordering for rows to ensure deterministic outputs when running in Snowflake.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0023¶
A Global Temporary Table is being referenced.
严重性¶
Medium
描述¶
SnowConvert AI transforms Global Temporary tables into regular Create Table. References to these tables may behave different than expected.
代码示例¶
输入¶
输出¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0024¶
Functionality is not currently supported by Snowflake Scripting
备注
This FDM is deprecated, please refer to SSC-EWI-0058 documentation.
描述¶
This error happens when a statement used in a create procedure is not currently supported by Snowflake Scripting.
示例代码¶
输入代码 (Oracle):¶
生成的代码:¶
最佳实践¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0025¶
Unexpected end of statement
描述¶
This message is reported when SnowConvert AI encounters an unexpected end of statement during conversion. This typically occurs when the parser reaches the end of the source code while still expecting additional tokens to complete a statement. The EWI includes the line number of the original source code where the issue was detected.
示例代码¶
输入代码:¶
生成的代码:¶
最佳实践¶
Check the specified line in the original source code for missing semicolons or incomplete statements.
Ensure all statements are properly terminated.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0026¶
Type not supported by Snowflake
备注
This FDM is deprecated, please refer to SSC-EWI-0028 documentation.
描述¶
This message appears when a type is not supported in Snowflake.
示例¶
输入代码 (Oracle):¶
生成的代码:¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0027¶
Removed next statement, not applicable in Snowflake.
备注
Some parts in the output code are omitted for clarity reasons.
描述¶
This message appears when a specific statement is not applicable in Snowflake, it means that there is no Snowflake equivalent for this statement and it is no longer needed, and for that reason, it is removed from the source code. However, SnowConvert AI keeps the original statement as part of the comment at the end.
示例代码¶
Input Code: ¶
Generated Code: ¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0028¶
Not supported.
备注
This FDM is deprecated, please refer to SSC-EWI-0021 documentation.
描述¶
This message appears when a specific node or statement from the source code is not supported in Snowflake.
示例代码¶
Input Code: ¶
生成的代码:¶
最佳实践¶
If this error happens, it is because there is no Snowflake equivalent for the node that is being converted.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0029¶
User defined function was transformed to a Snowflake procedure.
警告
This EWI is deprecated, please refer to SSC-EWI-0068 documentation
严重性¶
Low
描述¶
Snowflake user defined functions do not support the same features as Oracle or SQL Server. To maintain the functional equivalence the function is transformed to a Snowflake stored procedure. This will affect their usage in queries.
示例代码¶
SQL Server:¶
输入代码¶
生成的代码¶
Oracle:¶
输入代码¶
生成的代码¶
最佳实践¶
Separate the inside queries to maintain the same logic.
The source code may need to be restructured to fit with the Snowflake user-defined functions approach.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0030¶
Replaced invalid characters for new identifier
描述¶
The given identifier has invalid characters for the output language. Those characters were replaced with their UTF-8 codes.
示例代码¶
输入代码 (Oracle):¶
生成的代码:¶
最佳实践¶
No end-user actions are required.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0031¶
Dynamic Table required parameters set by default
描述¶
Materialized Views (and Join Indexes in the case of Teradata) are migrated to Dynamic Tables in Snowflake. Dynamic Tables require two parameters to be set: TARGET_LAG and WAREHOUSE.
If these parameters are not set in the configuration options, they are set by default during conversion.
Read more about the required Dynamic Tables parameters here.
示例代码¶
输入代码 (Oracle):¶
生成的代码:¶
最佳实践¶
Configure the dynamic table required parameters according to your needs.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0032¶
Parameter is not a literal value, transformation could not be fully applied
描述¶
For multiple transformations, SnowConvert AI sometimes requires to validate the contents of a parameter, which is only possible if the parameter is a literal value.
This message is generated to warn the user that SnowConvert AI could not retrieve the value of the parameter because it was passed by reference, causing the transformation of the function or statement to not be completed.
示例代码¶
输入代码 (Redshift):¶
生成的代码:¶
最佳实践¶
Try to provide the specified parameter as a literal value.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0033¶
Sample clause behaves differently in Snowflake.
描述¶
This message is generated to showcase the functional difference while sampling rows in Snowflake. The differences are related to the quantity of rows retrieved. When in Teradata there is the same quantity of rows in the non-deterministic output, it may change in Snowflake and return a few rows more or less. This is because a probability related topic and it is expected to behaves like that in Snowflake.
If there is a requirement of retrieving the same values and the same quantity, a deterministic output, it is recommended to use a seed in the Snowflake query.
示例代码¶
输入代码 (Teradata):¶
生成的代码:¶
最佳实践¶
Try to use the seed part of the query when it is required a deterministic output.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0034¶
Struct converted to VARIANT. Some of its usages might have functional differences.
描述¶
Snowflake does not natively support the STRUCT data type. SnowConvert AI automatically converts STRUCT to VARIANT. When used in INSERT statements, STRUCT data will be handled using OBJECT_CONSTRUCT. Be aware that this conversion may introduce functional differences in some use cases.
代码示例¶
输入代码:¶
BigQuery¶
生成的代码:¶
Snowflake¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0035¶
The INFER_SCHEMA function requires a file path without wildcards to generate the table template, replace the FILE_PATH placeholder with it
描述¶
The INFER_SCHEMA function is used in Snowflake to generate the columns definition of a table based on the structure of a file, it requires a LOCATION parameter that specifies the path to a file or folder that will be used to construct the table columns, however, this path does not support regex, meaning that the wildcard * character is not supported.
When the table has no columns, SnowConvert AI will check all URIS to find one that does not use wildcards and use it in the INFER_SCHEMA function, when no URI meets such criteria this FDM and a FILE_PATH placeholder will be generated, the placeholder has to be replaced with the path of one of the files referenced by the external table to generate the table columns.
代码示例¶
输入代码:¶
BigQuery¶
生成的代码:¶
Snowflake¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0036¶
The transformed numeric/date format may have a different behavior in Snowflake.
描述¶
The transformed numeric formats to Snowflake use Fixed position formats. The transformed format can fail and generate a different output when there are more digits in the integer part of the number than there are digit positions in the format; all digits are printed as # to indicate overflow.
备注
For SQL Server migrations: If you are converting SQL Server code that uses custom single-character date format specifiers (for example, %y, %M, %d, %H, %h, %m, %s) or advanced numeric format specifiers (for example, P, N, %), consider enabling the --enableFormatSpecifiersPreview preview flag. This flag enables access to new Snowflake format specifiers that provide more accurate translations of these formats. See Preview Features Settings for more details.
Note: This requires requesting preview access in your Snowflake account through this form (https://docs.google.com/forms/u/0/d/1-aIsixSftqhqjkpgBHAzcbSi2mk7s71TMQsRdOBppFw/viewform?edit_requested=true).
代码示例¶
输入代码:¶
Sql Server¶
生成的代码:¶
Snowflake¶
Result¶
最佳实践¶
If the numeric digit does not fit in the format, please update the format by adding more digits based on the possible input data values.
SSC-FDM-0037¶
Statistics function not needed in Snowflake.
描述¶
DROP, COLLECT, or HELP statistics are not needed in Snowflake. Snowflake already collects statistics used for automatic query optimization.
示例代码¶
输入代码:¶
生成的代码¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0038¶
Micro-partitioning is automatically performed on all Snowflake tables.
描述¶
This message is added to the CREATE TABLE statement when a PARTITION BY clause is present. The PARTITION BY clause, which controls table partitioning in some databases, is not supported in Snowflake.
In Snowflake, all tables are automatically divided into micro-partitions—contiguous units of storage ranging from 50 MB to 500 MB of uncompressed data. This architecture enables highly granular pruning of large tables, which may consist of millions of micro-partitions.
Snowflake automatically stores metadata for each micro-partition, including:
The range of values for each column in the micro-partition.
The number of distinct values.
Additional properties used for optimization and efficient query processing.
Tables are transparently partitioned based on the order of data as it is inserted or loaded. For more details, see the Benefits of Micro-partitioning.
示例代码¶
输入代码:¶
生成的代码¶
最佳实践¶
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0039¶
SQLWARNING may not be captured as an exception in Snowflake.
描述¶
In source databases such as Teradata, SQLWARNING can be caught in exception handlers. Snowflake's exception handling may not capture SQLWARNING in the same way. When a handler is configured to catch SQLWARNING, SnowConvert AI translates it, but the behavior in Snowflake may differ.
示例代码¶
输入代码:¶
生成的代码:¶
最佳实践¶
Review exception handling logic that catches SQLWARNING; the handler may not be invoked in Snowflake for the same conditions.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0040¶
REGEXP_SUBSTR / REGEXP_INSTR function may fail if regex argument is not POSIX
描述¶
When translating regex-based functions (such as REGEXP_SUBSTR, REGEXP_INSTR) from source dialects to Snowflake, the regex argument must be valid POSIX syntax. Source dialects may support extended regex features that Snowflake does not. If the regex pattern uses non-POSIX syntax, the function may fail at runtime or produce different results.
示例代码¶
输入代码:¶
生成的代码:¶
最佳实践¶
Ensure regex patterns use POSIX-compliant syntax.
Test regex functions with sample data after conversion.
If you need more support, you can email us at snowconvert-support@snowflake.com
SSC-FDM-0041¶
Default parameters were reordered to the end of the parameter list.
描述¶
Snowflake requires all parameters with default values to appear after all non-default parameters. When SnowConvert AI detects a procedure whose default parameters are not at the end of the parameter list, it automatically reorders them. Code not provided to SnowConvert AI that uses positional arguments may need to be updated to match the new parameter order.
备注
This FDM replaces the deprecated SSC-EWI-0002, which previously only warned about the issue without performing the reorder.
示例代码¶
Input Code (SQL Server):¶
Generated Code (SQL Server):¶
输入代码 (Oracle):¶
Generated Code (Oracle):¶
Positional Call Site Conversion¶
When callers use positional arguments and the parameters have been reordered, SnowConvert AI automatically converts them to named arguments:
最佳实践¶
Review all callers of the affected procedure. If positional arguments are used, update them to match the new parameter order or convert them to named arguments.
Consider using named arguments (e.g.,
param1 => value) instead of positional arguments to avoid issues with parameter ordering.If you need more support, you can email us at snowconvert-support@snowflake.com