Database driver specification (driver)

In database connection parameters, the driver parameter identifies the type of database driver to be used.

The driver must correspond to the database client software.
Important: Pay attention to the binary architecture of the database client software: Genero runtime system and database client binaries must match. For example, a 32 bit Oracle® client can not be used with a Genero 64 bit runtime system.

We distinguish two types of database driver names:

  • Generic driver names ("dbmora", "dbmsnc"), and aliases ("oracle", "sqlserver")
  • Version-stamped driver names ("dbmora_12", "dbmsnc_17", "dbmmys_8_0")

A driver name "dbmxxx" identifies a generic driver name for the database server identified by the code xxx.

For example, in FGLPROFILE, to define the database driver for the Oracle OCI client (code "ora"), use the name "dbmora":

dbi.database.stores.driver = "dbmora"
Note: For convenience, it is also possible to specify a long name (alias) such as "oracle" or "sqlserver", as defined in the database driver table below.

The generic driver names (like dbmora) require the latest database client software available on the platform. This can change from one Genero BDL release to another, when supporting a new database client version. Use the version-stamped driver name (like dbmora_12), to point to a specific database client version, for example when the most recent database client software is not available on the platform.

Check for library dependency on your system, to identify the database client library required by the driver with the generic name. The driver definition table below lists the driver names for each supported database client types and versions. For example, on Linux® platform, use the ldd command:
$ ldd $FGLDIR/dbdrivers/dbmmys.so
      ...
      libmysqlclient.so.21 => ...
      ...

Drivers with generic names are compatible with the latest database client version available on the platform. Depending on the platform, the same generic driver name can refer to different database client software versions. For example, on an old platform where only MySQL 5.7 client is available, dbmmys will identify the dbmmys_5_7 driver, depending on libmysqlclient.so.20. On a more recent platform where MySQL 8.0 is available, dbmmys will identify the dbmmys_8_0 driver, depending on libmysqlclient.so.21.

To limit the number of drivers, if the database client software allows it, the drivers are build with the oldest database client version that is compatible with the latest available database client versions. For example, the dbmdb2_10 driver is linked to libdb2.so.1, which is supported by the IBM DB2 V10 and V11 client software.

Note: A given driver (combined with the corresponding database client software library) can connect to a database server of an older version, if the database vendor client/server protocol supports the combination. For example, you can use an Oracle client version 12c to connect to an 11g server. The ODI driver will then adapt SQL translations and emulations to the target database server version.

A default driver can be specified with the dbi.default.driver FGLPROFILE entry. This driver will be used for all database connections that do not specify the driver explicitly:

dbi.default.driver = "dbmora"

If this entry is not defined, and if no driver parameter is specified for the data source, the driver name defaults to dbmdefault. This default driver is a copy of the database driver that was chosen during installation.

Table 1. Database driver names
Versionned name / Generic name / Alias Code Database client software version UNIX™ shared objects Microsoft™ Windows® DLLs Mac OS X™ dynamic libraries
dbmdb2_10 / dbmdb2 / db2 db2 IBM® DB2® LUW Client 10.x, 11.x libdb2.so.1 db2cli.dll N/A
dbmesm_1 / dbmesm / easysoft_sqlserver esm Easysoft ODBC for SQL Server libessqlsrv.so N/A N/A
dbmhdb_2 / dbmhdb / sap_hana hdb SAP HANA® ODBC libodbcHDB.so libodbcHDB.dll N/A
dbmifx_9 / dbmifx / informix ifx IBM Informix® CSDK 4.10 and higher libifsql.so, libifasf.so, libifgen.so, libifos.so, libifgls.so, libifglx.so isqlt09a.dll libifsql.dylib, libifasf.dylib, libifgen.dylib, libifos.dylib, libifgls.dylib, libifglx.dylib
dbmmdb_10_2 / dbmmdb / mariadb mdb MariaDB Client 10.2.x and higher libmariadb.so.3 libmariadb.dll libmariadb.3.dylib
dbmmys_5_6 mys Oracle MySQL Client 5.6.x libmysqlclient.so.18 libmysql.dll libmysqlclient.18.dylib
dbmmys_5_7 mys Oracle MySQL Client 5.7.x libmysqlclient.so.20 libmysql.dll libmysqlclient.20.dylib
dbmmys_8_0 / dbmmys / mysql mys Oracle MySQL Client 8.0.x and higher libmysqlclient.so.21 libmysql.dll libmysqlclient.21.dylib
dbmntz_6 / dbmntz / netezza ntz IBM Netezza® (6.x) libnzodbc.so odbc32.dll / NSQLODBC.DLL N/A
dbmora_11 ora OCI Client V11 libclntsh.so.11.1 oci.dll N/A
dbmora_12 ora OCI Client V12 libclntsh.so.12.1 oci.dll libclntsh.dylib.12.1
dbmora_18 / dbmora / oracle ora OCI Client V18, V19 libclntsh.so.18.1 oci.dll libclntsh.dylib.18.1
dbmpgs_9 / dbmpgs / postgresql pgs PostgreSQL Client 9.4, 9.5, 9.6, 10, 11, 12, 13 and 14 libpq.so.5 libpq.dll libpq.5.dylib
dbmsnc_11 snc SQL Server Native Client 2012 (V11) N/A odbc32.dll / SQLNCLI11.DLL N/A
dbmsnc_13 snc Microsoft ODBC 13 for SQL Server libmsodbcsql-13.so odbc32.dll / MSODBCSQL13.DLL N/A
dbmsnc_17 / dbmsnc / sqlserver snc Microsoft ODBC 17 for SQL Server libmsodbcsql-17.so odbc32.dll / MSODBCSQL17.DLL N/A
dbmftm_0 / dbmftm / freetds_sqlserver ftm FreeTDS ODBC version 1.00+ libtdsodbc.so.0 N/A N/A
dbmsqt_3 / dbmsqt / sqlite sqt SQLite 3.x libsqlite3.so.0 N/A (statically linked) libsqlite3.dylib