SnowConvert AI - IBM DB2 - CREATE TYPE

This page describes how SnowConvert translates Db2 distinct types (CREATE DISTINCT TYPE ... AS type) and structured CREATE TYPE ... AS (...) definitions. Distinct types map to Snowflake CREATE TYPE name AS <base_type>; attribute lists map to OBJECT(...).

Distinct types

CREATE DISTINCT TYPE becomes CREATE TYPE. The WITH COMPARISONS clause is not carried forward; base types use the same data-type normalization as the rest of the Db2 migration.

Source (Db2):

CREATE DISTINCT TYPE CURRENCY AS DECIMAL(15,2) WITH COMPARISONS;

Snowflake equivalent:

CREATE TYPE CURRENCY AS DECIMAL(15, 2);

Source (Db2):

CREATE DISTINCT TYPE EMAIL_ADDR AS VARCHAR(255);

Snowflake equivalent:

CREATE TYPE EMAIL_ADDR AS VARCHAR(255);

Source (Db2):

CREATE DISTINCT TYPE myschema.PHONE_NUM AS VARCHAR(20) WITH COMPARISONS;

Snowflake equivalent:

CREATE TYPE myschema.PHONE_NUM AS VARCHAR(20);

Structured types (attribute list)

Composite-style definitions with CREATE TYPE name AS (col type, ...) map to Snowflake OBJECT(...).

Source (Db2):

CREATE TYPE address_t AS (street VARCHAR(100), city VARCHAR(50), state CHAR(2));

Snowflake equivalent:

CREATE TYPE address_t AS OBJECT (street VARCHAR(100), city VARCHAR(50), state CHAR(2));

Source (Db2):

CREATE TYPE person_t AS (first_name VARCHAR(50), last_name VARCHAR(50), age INTEGER);

Snowflake equivalent:

CREATE TYPE person_t AS OBJECT (first_name VARCHAR(50), last_name VARCHAR(50), age INTEGER);

Notes: Unsupported or highly Db2-specific type features may still emit EWIs/FDMs. For structured types, IBM also documents CREATE TYPE (structured) (https://www.ibm.com/docs/en/db2/11.5?topic=statements-create-type-structured).