CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. 漏洞列表
  3. 正文

decode函数-2020/8/15

2020年8月15日 320点热度 0人点赞 0条评论

oracle decode函数,不管查询的结果是否满足‘PRIMARY’,参数中的select语句还是会执行的,通过查看执行计划就知道

set autotrace traceonly

select decode(database_role ,'PRIMARY',
(select
trunc((size_MB-free_MB)*100/maxsize_MB) "retvalue"
from (
select
tablespace_name,case when sum(decode(autoextensible,'YES',1,0))>0 then 'YES'
else 'NO' end ext,
trunc(sum(bytes)/1024/1024) SIZE_MB,
trunc(sum(case when autoextensible='YES' then maxbytes else bytes
end)/1024/1024) MAXSIZE_MB
from dba_data_files
group by tablespace_name
) t1,
(
select tablespace_name,trunc(sum(bytes)/1024/1024) FREE_MB
from dba_free_space
group by tablespace_name
) t2,
(select tablespace_name
from dba_tablespaces
where contents='PERMANENT') t3
where t1.tablespace_name=t2.tablespace_name and t3.tablespace_name=t1.tablespace_name and t3.tablespace_name='SYSTEM'),0) as retvalue from v$database;
decode函数等价于cash when语句,只不过当条件比较多时,decode函数书写起来比较简洁一点而已

select case
when database_role = 'PRIMARY' then (select tname from tab where rownum=1)
else '0'
end as retvalue
from v$database;0daybank

标签: 暂无
最后更新:2020年8月15日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me