All those solutions using MS-Access to collect/link tables from SQL-Server + Oracle are good practise solutions.
For performance and stability reasons I would choose the Oracle Gateway to SQL-Server. I don't know if this Gateway could be used to link a SQL-Server-Table into the Oracle-Instance so it looks as if it is local in the Oracle-Instance and so can be shown in the Cognos-Catalog, but for sure you can use the gateway to query that SQL-Server Table on a regualry base and store it in an Oracle-materialized view.
Using this materialized view as source for Cognos-Catalog, you speed up at report-generation-time and you rely only on 1 connection to 1 Databases instead of multi-Database-connects.
Lao De