SnowConvert AI – Diferenças funcionais do IBM DB2

SSC-FDM-DB0001

FUNCTIONALITY MIGHT BE DIFFERENT DEPENDING ON THE DB2 DATABASE.

Gravidade

Low

Descrição

Esta mensagem é exibida sempre que um elemento SQL se comporta de maneira diferente dependendo da versão do banco de dados DB2 (DB2 para i, DB2 para z/OS ou DB2 para Linux, Unix e Windows). O SnowConvert AI trata todas as versões DB2 como uma só e, portanto, a tradução do elemento pode apresentar diferenças de funcionalidade em comparação com a plataforma original.

Casos

Abaixo estão listados todos os elementos SQL identificados até o momento que se comportam de maneira diferente dependendo da versão do banco de dados DB2.

CURRENT MEMBER

DB2 para z/OS: CURRENT MEMBER especifica o nome do membro de compartilhamento de dados Db2 atual no qual uma instrução está sendo executada. O valor de CURRENT MEMBER é uma cadeia de caracteres.

Db2 para LUW: o registro especial CURRENT MEMBER especifica um valor INTEGER que identifica o membro coordenador para a instrução.

Exemplo de código
Código de entrada:
 CREATE TABLE T1
(
  COL1 INT,
  COL2 CHAR(8) WITH DEFAULT CURRENT MEMBER
);
Copy
Código de saída:
 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" }}';
Copy

Recomendações

  • Revise seu código e lembre-se de que a transformação de resultados pode se comportar de maneira diferente dependendo da versão do Db2 que está sendo utilizada.

  • Se precisar de mais suporte, envie um e-mail para 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.

Gravidade

Low

Descrição

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)

  • CAST expressions (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;
Copy

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;
$$;
Copy

Recomendações

  • Review the converted code to ensure that using NUMBER(38, 37) instead of DECFLOAT does 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 CAST expressions where DECFLOAT is supported.

  • Se precisar de mais suporte, envie um e-mail para snowconvert-support@snowflake.com