Oracle中如何查看指定分区表的每个子分区行数

批量获取指定分区表的每个子分区行数!

不然手动查询太麻烦!

---查看指 定分区表的每个子分区行数

create or replace procedure show_tabparcnt

(partiton_tablename in user_tab_partitions.table_name%type )  --输入参数

as

TYPE cur IS REF CURSOR RETURN user_tab_partitions%RowType;  --声明游 标类型为ref

a cur;     --声明变量为ref游标类型

re number;

osname user_tab_partitions%rowtype;

begin

open a for select * from user_tab_partitions  where table_name=upper (partiton_tablename);

loop

fetch a into osname;

exit when a% notfound;

execute immediate 'select count(*)  from '||upper (partiton_tablename)||' partition ('||osname.partition_name||') '

into re;

dbms_output.put_line('用户分区表'||upper (partiton_tablename)||'的分区'||osname.partition_name||'的行数 为:'||re||';');

end loop;

close a;

end;

/

exec show_tabparcnt('orderlog') ;

返回栏目页:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

时间: 2024-11-02 18:15:42

Oracle中如何查看指定分区表的每个子分区行数的相关文章

asp.net C#中怎样接受SQL 返回select受影响的行数

asp教程.net C#中怎样接受SQL 返回select受影响的行数 '实例二 OleDbCommand command = new OleDbCommand(select count(*) from biao where name="张三" ,conn);   OleDbDataReader reader = command.ExecuteReader();       if (reader.Read())   {   strValue = (string)reader.GetVa

Oracle中如何查看对象持有锁的情况

同事在测试库上对一个表加字段,提示 ORA-00054, 资源忙. 应该是表对象的锁没有释放. 用如下SQL 查看一下系统中相关对象上锁的情况: <pre name="code" class="sql">/* Formatted on 2012/2/13 14:24:32 (QP5 v5.185.11230.41888) */ SELECT S.SID SESSION_ID, S.USERNAME, DECODE (LMODE, 0, ' None ',

oracle中如何查看表空间

1. 查看所有表空间大小 select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name; 2. 未使用的表空间大小 select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name; 3. 所以使用空间可以这样计算 select a.tablespace_name,tot

Oracle中如何生成指定范围内随机日期

/* * Oracle将日期作为过去某个关键日期(这个日期是公元前4712年1月1日)的整数偏移量来保存(即把日期保存为一个数字); * 因此可通过寻找'指定日期'与'关键日期'相对应的整数偏移量,再加一个指定范围内的随机整数来生成一个指定范围内的随机日期. */ 步骤: 1. 先找到'指定日期'与'关键日期'相对应的整数偏移量,格式为'J': SQL>select to_char(sysdate,'J') from dual; --系统给的结果是: 2456191 2. 生成指定范围[min_

Oracle中如何查看低效sql

--查看低效sql方法如下 select a.sql_text, a.executions, a.disk_reads, a.buffer_gets, round((a.buffer_gets-a.disk_reads)/a.disk_reads,2)  hit_radio, round(a.disk_reads/a.executions,2) read_per_run from v$sqlarea a where a.executions>0 and a.buffer_gets>0 and

oracle中巧取指定的记录与巧用外关联查询

1 取得表中第6到第10条记录的值1.1 第一种方法,使用minus语句假设ddl语句如下:CREATE TABLE T(ID VARCHAR2(4) PRIMARY KEY, VALUE INT)那么第一种方法就是取出前5条,再取出前10条,然后采用集合运算的方法把前10条减去前5条就OK了,SQL语句如下SELECT * FROM T WHERE ROWNUM <= 10MINUSSELECT * FROM T WHERE ROWNUM <= 5;1.2 另外一种方法,采用子查询子查询的这

Oracle中如何查看并行相关信息

下面我通过实验介绍三种查看并行相关内容,比如并行度.并行执行的实例等. 1.V$PQ_TQSTAT视图 – 脚本 [oracle@rac1 ~]$ cat showdop.sql column SERVER_TYPE format a15 column PROCESS format a10 select dfo_number,  tq_id,  server_type,  process,  num_rows,  bytes,  instance from v$pq_tqstat order b

Oracle中如何查看正在运行的sql

--查出此时正在运行的sql方法如下: select s.TERMINAL,s.machine,'alter system kill session '''||sid||','||serial#||''';', q.sql_text,s.event,s.* from v$session s,v$sql q where s.sql_id=q.sql_id and s.USERNAME='DATATRANS';--替换用户名DATATRANS即可 本栏目更多精彩内容:http://www.bianc

oracle中如何按指定条数批量处理

示例 --每处理10000条提交一次 loop insert into t2 select * from t1 where rownum <= 10000;  --每次插入10000条 delete from t1 where rownum <= 10000;    --每次删除10000条 v_rowcount := sql%rowcount; commit; exit when v_rowcount < 10000;      --如果提交条数小于10000,说明已经是最后一次处理