Suppose you want to create a database_link, but you don’t have the privilege to modify the tnsname entry. In that case you can create the database_link directly using tns description.

sql>create public database link IMFP connect to iwf identified by thr3iwf USING
'(DESCRIPTION=(ADDRESS_LIST=(
 ADDRESS=(PROTOCOL=TCP)(HOST=testoracle.com)(PORT=1522)))
 (CONNECT_DATA=(SERVICE_NAME=IMFP)))'

/
 database link created.

Much easier one is the below. No need to write the complete tns description also.

 create public database link TEST2 connect to system 
     identified by oracle using 
     '192.20.204.2:1526/TEST';


Database link created.

SQL> select sysdate from dual@TEST2;

SYSDATE
---------
25-JAN-17