SnowConvert AI - Différences fonctionnelles IBM DB2¶
SSC-FDM-DB0001¶
FUNCTIONALITY MIGHT BE DIFFERENT DEPENDING ON THE DATABASE DB2.
Gravité¶
Faible
Description¶
Ce message s’affiche chaque fois qu’un élément SQL se comporte différemment en fonction de la version de la base de données DB2 ([DB2 pour i] (https://www.ibm.com/docs/fr/i/7.4?topic=database), DB2 pour z/OS ou DB2 pour Linux, Unix et Windows). SnowConvert AI traite toutes les versions DB2 comme un tout et, par conséquent, la traduction de l’élément peut présenter des différences de fonctionnalités par rapport à la plateforme d’origine.
Cas¶
Vous trouverez ci-dessous tous les éléments SQL identifiés jusqu’à présent, qui se comportent différemment en fonction de la version de la base de données DB2.
CURRENT MEMBER¶
DB2 pour z/OS : CURRENT MEMBER spécifie le nom de membre d’un membre de partage de données Db2 actuel sur lequel une instruction s’exécute. La valeur de CURRENT MEMBER est une chaîne de caractères.
Db2 pour LUW : Le registre spécial CURRENT MEMBER spécifie une valeur INTEGER qui identifie le membre coordinateur pour l’instruction.
Exemple de code¶
Code d’entrée :¶
CREATE TABLE T1
(
COL1 INT,
COL2 CHAR(8) WITH DEFAULT CURRENT MEMBER
);
Code de sortie :¶
CREATE TABLE T1
(
COL1 INT,
COL2 CHAR(8) DEFAULT
--** SSC-FDM-DB0001 - FUNCTIONALITY FOR CURRENT_ROLE MIGHT BE DIFFERENT DEPENDING ON THE DB2 DATABASE. **
CURRENT_ROLE()
)
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": { "major": 0, "minor": 0, "patch": "0" }, "attributes": { "component": "db2", "convertedOn": "09/02/2025", "domain": "no-domain-provided" }}';
Recommandations¶
Examinez votre code et gardez à l’esprit que la transformation de résultat peut se comporter différemment en fonction de la version Db2 utilisée.
Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.
SSC-FDM-DB0002¶
DECFLOAT TYPE CHANGED TO NUMBER BECAUSE IT IS ONLY SUPPORTED IN TABLE COLUMNS AND CAST EXPRESSIONS IN SNOWFLAKE.
Gravité¶
Faible
Description¶
This message is shown when a DECFLOAT data type is used in a context not supported by Snowflake. In Snowflake, DECFLOAT is only permitted in:
Table column definitions (
CREATE TABLE)CASTexpressions (CAST(value AS DECFLOAT))
When DECFLOAT is used in other contexts such as procedure parameters, function parameters, or local variable declarations, SnowConvert AI transforms it to NUMBER(38, 37) and adds this FDM to indicate the functional difference.
Code Example¶
DB2¶
CREATE PROCEDURE TestProc (param1 DECFLOAT)
BEGIN
DECLARE local_var DECFLOAT;
SET local_var = param1;
END;
Snowflake¶
CREATE OR REPLACE PROCEDURE TestProc (param1 NUMBER(38, 37) --** SSC-FDM-DB0002 - DECFLOAT TYPE CHANGED TO NUMBER BECAUSE IT IS ONLY SUPPORTED IN TABLE COLUMNS AND CAST EXPRESSIONS IN SNOWFLAKE. **
)
RETURNS VARCHAR
LANGUAGE SQL
AS
$$
BEGIN
LET local_var NUMBER(38, 37) --** SSC-FDM-DB0002 - DECFLOAT TYPE CHANGED TO NUMBER BECAUSE IT IS ONLY SUPPORTED IN TABLE COLUMNS AND CAST EXPRESSIONS IN SNOWFLAKE. **
:= NULL;
local_var := param1;
END;
$$;
Recommandations¶
Review the converted code to ensure that using
NUMBER(38, 37)instead ofDECFLOATdoes not affect your application logic.If precise decimal floating-point arithmetic is critical for these parameters or variables, consider refactoring your code to use table columns or
CASTexpressions whereDECFLOATis supported.Si vous avez besoin de plus d’assistance, vous pouvez nous envoyer un e-mail à snowconvert-support@snowflake.com.