Добавьте имя базы данных к выводу 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)