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;