Добавьте имя базы данных к выводу V$RMAN_BACKUP_JOB_DETAILS

Я использую приведенную ниже команду для получения выходных данных из одной строки, и мое требование состоит в том, чтобы в первом столбце в качестве ИМЯ БД следовали выбранные ниже столбцы. Как мне этого добиться?

select SESSION_KEY, INPUT_TYPE, STATUS,
  to_char(START_TIME,'mm/dd/yy hh24:mi') start_time,
  to_char(END_TIME,'mm/dd/yy hh24:mi') end_time,
  TIME_TAKEN_DISPLAY
from V$RMAN_BACKUP_JOB_DETAILS
where INPUT_TYPE like '%DB%'
and start_time = (select max(start_time) from V$RMAN_BACKUP_JOB_DETAILS);

2 ответа

Вы можете получить имя базы данных, присоединившись к v$databaseНапример:

select d.name, rbjd.session_key, rbjd.input_type, status,
  to_char(rbjd.start_time,'mm/dd/yy hh24:mi') start_time,
  to_char(rbjd.end_time,'mm/dd/yy hh24:mi') end_time,
  rbjd.time_taken_display
from v$database d
cross join v$rman_backup_job_details rbjd
where rbjd.input_type like '%DB%'
and rbjd.start_time = (select max(start_time) from v$rman_backup_job_details);

Или с подзапросом, если вам не нравится перекрестное соединение, но я не большой поклонник подзапросов в списке выбора. И есть другие способы получить самый последний ряд.

Это также можно использовать, как всегда вывод V$RMAN_BACKUP_JOB_DETAILS будет одной строкой (согласно запросу, приведенному выше).

select name,SESSION_KEY, INPUT_TYPE, STATUS,
  to_char(START_TIME,'mm/dd/yy hh24:mi') start_time,
  to_char(END_TIME,'mm/dd/yy hh24:mi') end_time,
  TIME_TAKEN_DISPLAY
from V$RMAN_BACKUP_JOB_DETAILS,v$database
where INPUT_TYPE like '%DB%'
and start_time = (select max(start_time) from V$RMAN_BACKUP_JOB_DETAILS)
Другие вопросы по тегам