Is my pleasure to say helo to all of you. I need help on oracle to select all JOBS that using a DBLINK on oracle, to stop them during maintenance. I will appreciate your help.
Advertisement
Answer
TRY THIS:
x
SELECT JOB_NAME
FROM ALL_SCHEDULER_JOBS, ALL_DB_LINKS
WHERE JOB_ACTION LIKE '%'|| DB_LINK ||'%'
OR DB_LINK LIKE '%'|| JOB_ACTION ||'%'; --this line is more like just in case
Maybe you will have to play with upper
like this:
SELECT JOB_NAME
FROM ALL_SCHEDULER_JOBS, ALL_DB_LINKS
WHERE upper(JOB_ACTION) LIKE '%'|| DB_LINK ||'%'
OR DB_LINK LIKE '%'|| upper(JOB_ACTION) ||'%';
I have created a database link
CREATE DATABASE LINK local
CONNECT TO hr IDENTIFIED BY password
USING 'local';
I have created a job where I have used a name of the database link in the job_action section (name of the database link is
LOCAL
).BEGIN
-- Job defined entirely by the CREATE JOB procedure.
DBMS_SCHEDULER.create_job (
job_name => 'Update_Status',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN ;LOCAL; END;',
start_date => SYSTIMESTAMP,
repeat_interval => 'freq=minutely; bysecond=0;',
end_date => NULL,
enabled => TRUE,
auto_drop => FALSE,
comments => 'Job defined entirely by the CREATE JOB procedure.');
END;
I have run this query from above:
SELECT JOB_NAME
FROM ALL_SCHEDULER_JOBS, ALL_DB_LINKS
WHERE JOB_ACTION LIKE '%'|| DB_LINK ||'%'
OR DB_LINK LIKE '%'|| JOB_ACTION ||'%';
The result of the query was:
| JOB_NAME |
+-----------------+
| UPDATE_STATUS |
If you want to search all objects to find your db link then try this:
select *
from all_source
, ALL_DB_LINKS
where text like '%'|| DB_LINK ||'%';