【问题标题】:Add database name to the output of V$RMAN_BACKUP_JOB_DETAILS将数据库名称添加到 V$RMAN_BACKUP_JOB_DETAILS 的输出
【发布时间】:2017-03-07 21:17:15
【问题描述】:

我正在使用下面的命令来获取单行输出,我的要求是第一列作为 DB NAME,然后是下面选定的列。如何实现?

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);

【问题讨论】:

    标签: sql oracle oracle11g rman


    【解决方案1】:

    您可以通过加入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);
    

    如果您不喜欢交叉连接,也可以使用子查询,但我不喜欢选择列表中的子查询。还有其他方法可以获取最新的行。

    【讨论】:

      【解决方案2】:

      这也可以使用,一如既往 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)
      

      【讨论】:

        猜你喜欢
        • 2017-01-09
        • 2021-07-04
        • 1970-01-01
        • 1970-01-01
        • 2021-12-12
        • 2014-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多