Как выбрать все РАБОТЫ, которые используют DBLINK на оракуле?

Я рад передать привет всем вам. Мне нужна помощь в оракуле, чтобы выбрать все ЗАДАНИЯ, использующие DBLINK в оракуле, чтобы остановить их во время обслуживания. Я буду признателен за вашу помощь.


person OscaR    schedule 13.02.2020    source источник


Ответы (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) ||'%';
  1. Я создал ссылку на базу данных

    CREATE DATABASE LINK local 
    CONNECT TO hr IDENTIFIED BY password
    USING 'local';
    
  2. Я создал задание, в котором я использовал имя ссылки на базу данных в разделе 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;
    
  3. Я выполнил этот запрос сверху:

    SELECT JOB_NAME 
    FROM ALL_SCHEDULER_JOBS, ALL_DB_LINKS
    WHERE JOB_ACTION LIKE '%'|| DB_LINK ||'%'
    OR DB_LINK LIKE '%'|| JOB_ACTION ||'%'; 
    
  4. Результат запроса был:

    |    JOB_NAME     |
    +-----------------+
    |  UPDATE_STATUS  |
    

Если вы хотите найти все объекты, чтобы найти ссылку на базу данных, попробуйте следующее:

select *  
from all_source
     , ALL_DB_LINKS
where text like '%'|| DB_LINK ||'%';
person VBoka    schedule 13.02.2020
comment
Я действительно ценю твою помощь. Но это все еще не выдает информацию Спасибо. - person OscaR; 13.02.2020
comment
Пожалуйста. Знаете ли вы хоть одну работу, которая использует один dblink? - person VBoka; 13.02.2020
comment
Я пытаюсь найти один, но я не знаю, как. Извините, я новичок. @VBoka Спасибо - person OscaR; 13.02.2020
comment
Не проблема, но, возможно, их нет. Давайте просто иметь это в виду. - person VBoka; 13.02.2020
comment
На самом деле да. Существует множество баз данных, из которых заносится информация. - person OscaR; 13.02.2020
comment
Я обновил свой ответ. Извините, больше ничем помочь не могу. Вам нужно найти одну работу, чтобы доказать себе, что она существует... - person VBoka; 13.02.2020
comment
Кроме того, @OscaR, вы должны понимать, что JOB может запускать процедуру, использующую ссылку на базу данных, верно? - person VBoka; 13.02.2020
comment
Привет @OscaR, я обновил свой ответ. Могу я спросить вас: теперь, когда вы знаете, что задание может вызывать процедуру, вот пример: stackoverflow.com/questions/13642745/ и вы знаете, что эта процедура может использовать dblink. Какого ответа вы ожидаете от этого? Я спрашиваю, потому что: stackoverflow.com/help/someone-answers ... Удачи! - person VBoka; 13.02.2020