By default the value of GLOBAL_NAMES is TRUE.You can create the database link even if the value of GLOBAL_NAMES is TRUE.
But when u create the database link when the GLOBAL_NAMES=TRUE the database link name should be same to the database to which it points.
e.g Say u have 2 databases database A and database B and you want to create database link from A -> B so u have to give the command
create public database link B
connect to scott identified by tiger using 'B';
In case of any help please be free to ask me at email@example.com
You got the basics above. But with GLOBAL_NAMES set to TRUE you may face several problems with your DB links (Oracle Parallel Server for example). But on the other hand GLOBAL_NAMES set to FALSE might cause you problems if you want to use advanced replication.
Database Link Names - undocumented option if GLOABL_NAMES=TRUE
Found this in a Metalink article (DocID=1024124.6)
This is not documented in the Oracle manuals and can be useful (even required) when the init.ora parameter GLOBAL_NAMES is set to TRUE.....
Note that if GLOBAL_NAMES is set to FALSE, you can name the dblink anything you desire.
Database links are created using the following syntax:
SQL> create database link
connect to identified by
The name of the database link should match the global name of the target
database if GLOBAL_NAMES=TRUE. This may seem restricting since then there can
be only one database link per schema to a given database if global_names is
set to true. To overcome this use database link qualifiers. For example:
SQL> create database link oradb@link1
NOTE: in this example, 'link1' is database link qualifier
and 'D:BOSTON-MFG' is the connect string
My NOTE : your select to the remote database would look like this :
select * from table_name@oradb@link1;