Generate tnsnames.ora from up to date OEM using sqlcl

No it is not required to use sqlcl for this.  sqlplus or any other sql execution tool of your choice will work.

C:\sqldeveloper-17.2.0.188.1159-x64\sqlcl-17.2.0.184.1230-no-jre\sqlcl\bin\sql.bat /nolog
connect sysman/yourSysmanPW@your-oem-hostname:1521/emService
spool newtns.ora
set pagesize 0
set verify off
set feedback off
select
distinct sid.PROPERTY_VALUE||’ = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ‘||machine.PROPERTY_VALUE||’)(PORT = ‘||port.PROPERTY_VALUE||’))) (CONNECT_DATA = (instance_name = ‘||sid.PROPERTY_VALUE||’)))’ tnsnames
from
mgmt_target_properties machine,
mgmt_target_properties port,
mgmt_target_properties sid,
mgmt_target_properties domain,
mgmt$target
where
machine.target_guid=sid.target_guid
AND sid.target_guid=port.target_guid
AND port.target_guid=domain.target_guid
AND machine.PROPERTY_NAME=’MachineName’
AND port.PROPERTY_NAME=’Port’
AND sid.PROPERTY_NAME=’SID’
AND sid.PROPERTY_VALUE not like ‘%ASM%’
AND machine.TARGET_GUID in (select TARGET_GUID from mgmt_current_availability where EM_SEVERITY.get_avail_string(current_status)=’UP’)
AND machine.TARGET_GUID=mgmt$target.target_guid
order by 1;
/* or if the one above does not work for you…
SQL #2>
SELECT s.target_name||’ = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ‘||g.host_name||’)(PORT = ‘||p2.property_value||’))) (CONNECT_DATA = (service_name = ‘||i.instance_name||’)))’ tnsnames
FROM
sysman.mgmt_targets g,
sysman.mgmt_db_dbninstanceinfo_ecm i,
sysman.mgmt_ecm_gen_snapshot s,
sysman.mgmt_target_properties p2
WHERE
s.snapshot_guid = i.ecm_snapshot_id
AND g.target_guid = p2.target_guid
AND s.target_guid = g.target_guid
AND s.is_current = ‘Y’
AND p2.property_name=’Port’;
*/
spool off;

Scroll to Top