Oracle has invested heavily in distributed database technology and the creation of a database link is very straightforward. You specify the database link name, the remote user to connect to, the password for the remote user and the TNS service name for the database link connection:
create public database link
mylink
connect to
remote_username
identified by
mypassword
using 'tns_service_name';
Starting in 11g release 2, the syntax has been enhanced to remove the need to epscify a TNS service_name:
create public database link
mylink
connect to
remote_username
identified by
mypassword
using 'myserver:1521/MYSID';
Above we see that the TNS instance name has been replaced by allowing the server name, port number and Oracle system ID (ORACLE_SID).
You can also create a database link to non-Oracle databases, Francisco Riccio describes the steps for a database link to MySQL:
Step 1: Your first step is having installed the TRANSPARENT GATEWAY (it comes in as of the options when you install Oracle).
Step 2: You must have a user in the SQL Server.
Step 3: In the directory \tg4msql\admin look for the file inittg4msql.ora and have the following options:
HS_FDS_CONNECT_INFO="SERVER=name_server;DATABASE=name_db"
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=user_sqlserver
HS_FDS_RECOVERY_PWD=pass_user_sqlserver
Step 4: Configure the listener and add the following
(SID_DESC =
(PROGRAM = tg4msql)
(SID_NAME = MSQL)
(ORACLE_HOME = C:\oracle1)
)
)
and in our tnsnames.ora add
MSQL=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = servidor)(PORT = 1521))
)
(CONNECT_DATA =
(SID = MSQL)
)
(HS=OK)
)
where HS set up as a heterogonous service
Step 5: create a link to sql server.
create database link msql connect to user_sqlserver identified by password using 'MSQL';
Step 6: You can now use the database link to a foreign database:
select * from table@msql