In my previous article I have given the different PL/SQL examples which are very useful in real life. In this article I would like to throw light on Oracle database link with examples. The Oracle database link is most importantly used to transfer or used to perform database operations from one user to another user with ease. These kind of techniques are specifically useful in oracle database migration. To check or compare the data from different databases. In this article I would like to give the correct information about how to create Oracle database link with its usages in detail.
What you will find in this article?
What is Oracle database link with example?
How to create Oracle database link?
What are usages of database link?
In this section I would like to give you heads-up on oracle database link. The database link is nothing but the connection from oracle database to another remote database. The question in mind that where the database link is been used? The database link is used to perform db operations from remote database. The remote database will be any oracle database or any ODBC complaint database which will be mysql or SQL server.
If you can see above diagram the local database is directly communicating with the remote database. The remote database contains table and user can access those tables through local database and database link. In next section i would like to give you the details about how to create db link and its examples.
In this section i would like to explain more about the oracle database link and its examples. There are two types of database links; Public db links and private db links.
1.Public Database links : The public database links are useful and accessible public to all users of that database.
2.Private Database links : Private database links are most used database links as only user of that db link have access for private database links. These kind of db links are very useful database by considering the security constraint.
Syntax to create db link :
CREATE DATABASE LINK dblink_name
CONNECT TO remote_user_name IDENTIFIED BY password
USING ‘remote_database_name/Connection String’;
Step 1 : We require to write the name of the database link. The name of db link is required to access data from remote database.
Step 2 : Connect tp clause is very important clause which gives user access to connect to remote database nam*** Note : Here we require to check the ports are open from source to target else open port of target database
Step 3 : IDENTIFIED BY clause is used to give the password of target database. User should know the password of target database.
Step 4 : USING clause is used for the DB link connectivity whether it is connecting to remote database or any local database. If you specify only the database name, Oracle will append the database domain to the connect string to form a complete service name.
***Note : You require to add entry of remote database or target database in tnsnames.ora file.
Real Life Example :
If you have recently migrated data from User ‘ComplexSQL_SQL’ to Oracle database User ComplexSQL and you require to check the data from ComplexSQL user for ComplexSQL_SQL user. Create database link in that case ,
Kindly fire following query to ComplexSQL user and make sure that ports are open for ComplexSQL_SQL remote server,
CREATE DATABASE LINK dblk_Complexsql
CONNECT TO ComplexSQL_SQL IDENTIFIED BY XXXXXX
USING ‘(DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=complexsql.db.com)(PORT=1521)) (CONNECT_DATA=(SERVICE_NAME=complexsql)) )’;
If you want to create public database link then you can create that using public keyword,
The key use of database link is it allows the user to access multiple objects from remote database and to access those there are few standard syntax.
Sytax to access table or view :
table_name/view_name@database_link
As example if you want to access the table from remote db from local database kindly follow following syntax
SELECT * FROM remote_table_name/remote_View_name@database_link;
Example :
We already created the database link on ComplexSQL user. If you wanted to access Employee table from remote database use,
Select * from Employee@dblk_Complexsql;
The above query will fetch the data from employee table on remote database.
You can also create synonyms to access the data from remote environment/server.
CREATE SYNONYM local_table
FOR remote_table@database_link;
CREATE SYNONYM Employee_bck
FOR Employee@dblk_Complexsql;
The above statement will create synonym and you can access data directly rather than using dblink name again and again,
Select * from Employee_bck;
You can also insert the data in remote database,
INSERT INTO Employee@dblk_Complexsql(emp_id, name, email) VALUES(1,’Amit’,’contact@complexsql.com’);
Things to remember :
These are few things to remember related to database link. Hope you understand the concept of database link easily and if you have any questions or queries regarding the same kindly comment in comments section.
In my previous article I have given roles for L1 and L2 support engineer with…
I have started this new series of how to become application support engineer. This article…
In this series we are starting with Roles and responsibilities of L1 support engineer .…
Introduction Cryptocurrencies took the world by storm, setting up a new financial system and breaking…
In my previous article I have given Top 20 technical support interview questions with its…
In my previous articles I have given 15 most asked desktop support interview questions with…