One way of doing this is with "heterogenous services", ie, Oracle takes via ODBC to a remote non-oracle data source.
There's a manual for this in the standard doc set:
https://docs.oracle.com/en/database/oracle/oracle-database/12.2/heter/index.html
but in a nutshell, the basic steps are:
1) have an ODBC driver for DB2 on your database server, or on a machine that your database server can reach.
2) Configure an ODBC target for that DB2 database. Lets call it "MYDB2"
3) create a file initMYDB2.ora in $ORACLE_HOME/hs/admin. Configure it as per the sample (init4g4odbc.ora). It points to your MYDB2 target.
4) In that directory, you'll also find samples for listener.ora and tnsnames.ora.
So you'll end up with a tnsnames entry called "MYDB2". It will reference the initMYDB2.ora, which will point to the MYDB2 odbc target, which will be your DB2 database.
Then you create a database link in the normal way:
create database link blah
connect to my_db2_user
identified by my_db2_password
using 'mydb2';
Hope this helps.
oracle db2 dblink? One of the results mark.the-fennells.org/2011/08/23/…'abc-scan.mycompany.com.tr:1521/dbname2.mycompany.com.tr'in the first string for public dblink stand for connection.