Я рад передать привет всем вам. Мне нужна помощь в оракуле, чтобы выбрать все ЗАДАНИЯ, использующие DBLINK в оракуле, чтобы остановить их во время обслуживания. Я буду признателен за вашу помощь.
Как выбрать все РАБОТЫ, которые используют DBLINK на оракуле?
Ответы (1)
ПОПРОБУЙ ЭТО:
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...
Возможно, вам придется поиграть с upper
вот так:
SELECT JOB_NAME
FROM ALL_SCHEDULER_JOBS, ALL_DB_LINKS
WHERE upper(JOB_ACTION) LIKE '%'|| DB_LINK ||'%'
OR DB_LINK LIKE '%'|| upper(JOB_ACTION) ||'%';
Я создал ссылку на базу данных
CREATE DATABASE LINK local CONNECT TO hr IDENTIFIED BY password USING 'local';
Я создал задание, в котором я использовал имя ссылки на базу данных в разделе job_action (имя ссылки на базу данных —
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;
Я выполнил этот запрос сверху:
SELECT JOB_NAME FROM ALL_SCHEDULER_JOBS, ALL_DB_LINKS WHERE JOB_ACTION LIKE '%'|| DB_LINK ||'%' OR DB_LINK LIKE '%'|| JOB_ACTION ||'%';
Результат запроса был:
| JOB_NAME | +-----------------+ | UPDATE_STATUS |
Если вы хотите найти все объекты, чтобы найти ссылку на базу данных, попробуйте следующее:
select *
from all_source
, ALL_DB_LINKS
where text like '%'|| DB_LINK ||'%';
person
VBoka
schedule
13.02.2020
Я действительно ценю твою помощь. Но это все еще не выдает информацию Спасибо.
- person OscaR; 13.02.2020
Пожалуйста. Знаете ли вы хоть одну работу, которая использует один dblink?
- person VBoka; 13.02.2020
Я пытаюсь найти один, но я не знаю, как. Извините, я новичок. @VBoka Спасибо
- person OscaR; 13.02.2020
Не проблема, но, возможно, их нет. Давайте просто иметь это в виду.
- person VBoka; 13.02.2020
На самом деле да. Существует множество баз данных, из которых заносится информация.
- person OscaR; 13.02.2020
Я обновил свой ответ. Извините, больше ничем помочь не могу. Вам нужно найти одну работу, чтобы доказать себе, что она существует...
- person VBoka; 13.02.2020
Кроме того, @OscaR, вы должны понимать, что JOB может запускать процедуру, использующую ссылку на базу данных, верно?
- person VBoka; 13.02.2020
Привет @OscaR, я обновил свой ответ. Могу я спросить вас: теперь, когда вы знаете, что задание может вызывать процедуру, вот пример: stackoverflow.com/questions/13642745/ и вы знаете, что эта процедура может использовать dblink. Какого ответа вы ожидаете от этого? Я спрашиваю, потому что: stackoverflow.com/help/someone-answers ... Удачи!
- person VBoka; 13.02.2020