IBM DB2 to MariaDB Migration

SQLines tools can help you transfer data, convert database schema (DDL), views, stored procedures (SPL and COBOL), functions, triggers, queries and SQL scripts from IBM DB2 to MariaDB.

  • SQLines Data - Data transfer, schema migration and validation tool
  • SQLines SQL Converter - SQL scripts assessment and conversion tool

Databases:

  • IBM DB2 for LUW, z/OS and OS/400 11.x, 10.x, 9.x, 8.x and 7.x
  • MariaDB 10.x

DB2 to MariaDB Migration Reference

Data Types

Character data types:

DB2 MariaDB
1 GRAPHIC(n) Fixed-length UTF-16 string, 1 <= n <= 128 CHAR(n)
2 VARCHAR(n OCTETS) Variable-length string in bytes, 1 <= n <= 32672 VARCHAR(n) n <= 65535 in characters
3 VARGRAPHIC(n) Variable-length UTF-16 string, 1 <= n <= 16336 VARCHAR(n)

Binary data types:

DB2 MariaDB
1 VARCHAR(n) FOR BIT DATA Variable-length binary string, 1 ⇐ n ⇐ 32672 VARBINARY(n) n ⇐ 65535

Numeric data types:

DB2 MariaDB
1 BIGINT 64-bit integer BIGINT
2 DECFLOAT(16 | 34) IEEE decimal floating-point number DOUBLE
3 INT, INTEGER 32-bit integer INT, INTEGER
4 SMALLINT 16-bit integer SMALLINT

Data and time data types:

DB2 MariaDB
1 DATE Date (year, month and day) DATE
2 TIMESTAMP(p) Date and time with fraction, 0 <= p <= 12 , default 6 DATETIME(p) p <= 6

Large objects data types:

DB2 MariaDB
1 BLOB(n) Binary large object, 1 ⇐ n ⇐ 2G LONGBLOB

CREATE TABLE Statement

Converting CREATE TABLE statement from DB2 to MariaDB:

DB2 MariaDB
1 GENERATED AS IDENTITY Identity column AUTO_INCREMENT

Data type attributes:

DB2 MariaDB
1 FOR BIT DATA Binary data encoding Removed
FOR SBCS | MIXED DATA Column data encoding (z/OS) Removed
2 CCSID ASCII | UNICODE | EBCDIC Character set Removed
CCSID num Column character set (OS/400) Removed

Implicit DEFAULT values in DB2:

DB2 MariaDB
1 col_name CHAR(n) WITH DEFAULT col_name CHAR(n) DEFAULT ''
2 col_name VARCHAR(n) WITH DEFAULT col_name VARCHAR(n) DEFAULT ''
3 col_name INTEGER WITH DEFAULT col_name INTEGER DEFAULT 0
4 col_name DECIMAL(p, s) WITH DEFAULT col_name DECIMAL(p, s) DEFAULT 0
5 col_name NUMERIC(p, s) WITH DEFAULT col_name NUMERIC(p, s) DEFAULT 0
6 col_name DATE WITH DEFAULT col_name DATE DEFAULT CURRENT_DATE
7 col_name TIMESTAMP WITH DEFAULT col_name TIMESTAMP DEFAULT CURRENT_TIMESTAMP