I modified the posted SQL to use Left Joins as suggested and indeed my Link to Oracle now shows up. It was missing before and I had noticed that the join to logins could be an issue.
sys.servers AS a
sys.linked_logins AS b
ON a.server_id = b.server_id
sys.server_principals AS f
ON b.local_principal_id = f.principal_id
I notice that this query also returns the instance which is the first row in sys.servers. I added a "where a.name <> a.data_source" which filters the instance out but I am not sure this is safe for all cases. Is another or different condition necessary to filter out the instance?
-- Mark D Powell --