Sunday 4 November 2012

Effect of GLOBAL_NAME and GLOBAL_NAMES on Database Links


GLOBAL_NAME

●● GLOBAL_NAME is a VARCHAR2(2000) datatype and is the name of the database.
●● It defaults to db_name.db_domain
●● This value is marked at database creation time
●● Changing db_name and/or db_domain will not change Global_name

You can change global_name by issuing the following sql command:
ALTER DATABASE RENAME GLOBAL_NAME TO <<<NEW_GLOBAL_NAME>>>;

GLOBAL_NAMES

GLOBAL_NAMES is a boolean variable and it is either set to TRUE or FALSE.

It can be changed dynamically by issuing the following sql command:
ALTER SYSTEM SET GLOBAL_NAMES=TRUE;

●● The name of the database link should match the global name of the target database if GLOBAL_NAMES=TRUE.
●● This may seem restricting because there can only be one database link per schema to a given database, if global_names is set to true.

Issue with Concurrent Program "Workshop Details ERP To FTS"

Cause: FDPSTP failed due to ORA-02069: global_names parameter must be set to TRUE for this operation
ORA-06512: at "XXCTO.XXCTO_FTS_PKG", line 61
ORA-06512: at line 1

When I set GLOBAL_NAMES=TRUE, I am getting ORA-02085
ALTER SYSTEM SET GLOBAL_NAMES=TRUE SCOPE=BOTH;

Solution:

Changed the Global Name of the MKKTGTDB Database:
alter database rename global_name to ERP_TO_FTS.VM.DOMAINMKK.IN;
>>>>> Same as the Global Name

Create public database link ERP_TO_FTS.VM.DOMAINMKK.IN CONNECT TO ERPINTUSER IDENTIFIED BY oracle123 using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.123.1.246)(PORT = 1527))) (CONNECT_DATA = (SERVICE_NAME = MKKTGTDB)))';

Requested the Developer to Put the following line in the package:
alter session set global_names=TRUE;

select count(*) from erpintuser.temp_fts_veh_mnt_tab@ERP_TO_FTS.VM.DOMAINMKK.IN;

No comments:

Post a Comment