You can configure a timeout for a query to a remote server. The documentation is here
( https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-remote-query-timeout-server-configuration-option?view=sql-server-ver15 )
You can change this on a database with this script which sets a 100 second timeout
USE AdventureWorks2012 ;
EXEC sp_configure 'remote query timeout', 100 ;
There does not seem to be a way to set a query timeout within T-SQL for one statement. This is discussed in more detail here.
I see another user has suggested configuring the sqlnet.ora file on the client on the SQL server however this should be tested as I believe SQL Server will still wait on a response from the client even if the client has terminated the connection.
While you are testing you do not need to restart the server. Just restart the Agent service and that will terminate all running jobs.
You might also consider a test query before doing your real work. Try this, if it returns a value the Oracle database is up.
select 1 from dual;
Due to all places where things can go wrong in a linked server query this answer from Max Vernon might assist.
He suggests surrounding the initial test with some error handling that will allow any problems to be found at run time when the dynamic statement runs
DECLARE @cmd nvarchar(max);
SET @cmd = 'SELECT * FROM OPENQUERY([server1], ''SELECT 1 AS c;'');';
EXEC sp_executesql @cmd;
SELECT ERROR_NUMBER(), ERROR_MESSAGE();