«

Oracle-语句(一)

指尖二进制 • 1 年前 • 707 次点击 • ORACLE


--查询某张表的时间列最近时间的值和最初时间的值。
select  * from s_kpi_data where create_date=(select max(create_date) from s_kpi_data);
select  * from s_kpi_data where create_date=(select min(create_date) from s_kpi_data);
select max(s.create_date) from s_kpi_data s;
select min(s.create_date) from s_kpi_data s;

--查询所有带有分区的表
select table_name,max(t.partition_name) from user_tab_partitions t group by table_name;

--增加表分区(按日期增加)
alter table E_TMNL_COMM_ANALY_STATS add partition P20180501 values less than (TO_DATE('2018-05-01 00:00:00','SYYYY-MM-DD HH24:MI:SS','NLS_CALENDAR=GREGORIAN'));

--删除表分区
alter table E_TMNL_COMM_ANALY_STATS drop partition P20180501;

--查询表空间使用情况
SELECT Upper(F.TABLESPACE_NAME)         "表空间名",
       D.TOT_GROOTTE_MB                 "表空间大小(M)",
       D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
       To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99')
       || '%'                           "使用比",
       F.TOTAL_BYTES                    "空闲空间(M)",
       F.MAX_BYTES                      "最大块(M)"
FROM   (SELECT TABLESPACE_NAME,
               Round(Sum(BYTES) / ( 1024 * 1024 ), 2) TOTAL_BYTES,
               Round(Max(BYTES) / ( 1024 * 1024 ), 2) MAX_BYTES
        FROM   SYS.DBA_FREE_SPACE
        GROUP  BY TABLESPACE_NAME) F,
       (SELECT DD.TABLESPACE_NAME,
               Round(Sum(DD.BYTES) / ( 1024 * 1024 ), 2) TOT_GROOTTE_MB
        FROM   SYS.DBA_DATA_FILES DD
        GROUP  BY DD.TABLESPACE_NAME) D
WHERE  D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER  BY 1

--查询表空间物理名称及位置
select tablespace_name,file_id,file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name,file_id;
还没收到回复