Database driver specification (driver)
In database connection parameters, the driver
parameter identifies the
type of database driver to be used.
We distinguish two types of database driver names:
- Generic driver names ("
dbmora
", "dbmsnc
"), and aliases ("oracle
", "sqlserver
") - Version-stamped driver names ("
dbmora_12
", "dbmsnc_10
", "dbmsnc_11
")
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"
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.
$ 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. On a more
recent platform where MySQL 8.0 is available, dbmmys
will identify the
dbmmys_8_0
driver.
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 that a given driver (combined with the corresponding database client software) 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.
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.
Name with db client version | 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 |
dbmesm / sap_hana |
hdb |
SAP HANA® ODBC | libodbcHDB.so | libodbcHDB.dll | N/A |
dbmifx_9 |
dbmifx / informix |
ifx |
IBM Informix® CSDK 2.80 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_5 |
mys |
Oracle MySQL Client 5.5.x and higher / MariaDB 10.0 and 10.1 | 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 |
dbmora / oracle |
ora |
OCI Client V12 | libclntsh.so.12.1 | oci.dll | N/A |
dbmpgs_9 |
dbmpgs / postgresql |
pgs |
PostgreSQL Client 9.x and 10.x | libpq.so.5 | libpq.dll | libpq.5.dylib |
dbmsnc_10 |
snc |
SQL Server Native client 2008 (V10) | N/A | odbc32.dll / SQLNCLI10.DLL | N/A | |
dbmsnc_11 |
snc |
SQL Server Native Client 2012 (V11) | N/A | odbc32.dll / SQLNCLI11.DLL | N/A | |
dbmsnc_13 |
snc |
ODBC 13 for SQL Server | libmsodbcsql-13.so | odbc32.dll / MSODBCSQL13.DLL | N/A | |
dbmsnc_17 |
dbmsnc / sqlserver |
snc |
ODBC 17 for SQL Server | libmsodbcsql-17.so | odbc32.dll / MSODBCSQL17.DLL | N/A |
dbmftm_0 |
dbmftm /
freetds_sqlserver |
ftm |
FreeTDS ODBC version 0.91+ | libtdsodbc.so.0 | N/A | N/A |
dbmsqt_3 |
dbmsqt / sqlite |
sqt |
SQLite 3.x | libsqlite3.so.0 | N/A (statically linked) | libsqlite3.dylib |