CREATE OR REPLACE FUNCTION Get_Record_Count(p_table_name varchar2)
创新互联公司专注于永登企业网站建设,响应式网站开发,商城网站制作。永登网站建设公司,为永登等地区提供建站服务。全流程定制网站建设,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
RETURN INT
IS
-- 动态SQL的游标.
v_CursorID INTEGER;
-- 动态执行的SQL语句.
v_sql varchar2(1000);
-- SQL 执行的返回值,可以不理会该数据.
v_Dummy INTEGER;
-- 用于保存读取出来的数据.
v_result INT ;
BEGIN
-- 设置好需要动态执行的 SQL 字符串.
v_sql:=
'SELECT COUNT(1) from ' || p_table_name ;
-- 打开游标.
v_CursorID := DBMS_SQL.OPEN_CURSOR;
-- 分析查询.
DBMS_SQL.PARSE(v_CursorID, v_sql, DBMS_SQL.V7);
-- 定义好要输出的列.
DBMS_SQL.DEFINE_COLUMN(v_CursorID, 1, v_result);
-- 执行动态SQL.
v_Dummy := DBMS_SQL.EXECUTE(v_CursorID);
LOOP
IF DBMS_SQL.FETCH_ROWS(v_CursorID) = 0 THEN
-- 如果没有提取到记录,那么退出循环
EXIT;
END IF;
-- 提取动态SQL执行出来的结果.
DBMS_SQL.COLUMN_VALUE(v_CursorID, 1, v_result);
END LOOP;
-- 关闭游标
DBMS_SQL.CLOSE_CURSOR(v_CursorID);
-- 返回
RETURN v_result;
END ;
/
DECLARE
v_table_index INT;
v_table_name VARCHAR(20);
v_data_count INT;
BEGIN
v_data_count := 0;
FOR v_table_index IN 0..999 LOOP
-- 组合表名
v_table_name := 'message_' || TO_CHAR(v_table_index, '000');
-- 取得记录数
v_data_count := v_data_count + Get_Record_Count();
END LOOP;
-- 输出结果
dbms_output.put_line( TO_CHAR(v_data_count) );
END
没编译 测试 运行 过.
oracle 已经分区的表需要怎样查询
显示分区表信息
显示数据库所有分区表的信息:DBA_PART_TABLES
显示当前用户可访问的所有分区表信息:ALL_PART_TABLES
显示当前用户所有分区表的信息:USER_PART_TABLES
显示表分区信息 显示数据库所有分区表的详细分区信息:DBA_TAB_PARTITIONS
显示当前用户可访问的所有分区表的详细分区信息:ALL_TAB_PARTITIONS
SELECT (SUM(B.COLB)-SUM(A.COLA)) CD FROM TESTAB A,TESTCD B WHERE A.COLID=B.COLID HAVING SUM(B.COLB)-SUM(A.COLA) 20;
分区后用户查询没有区别,就普通的查询语句即可,通常情况下不必关心分区名称等细节,只需要知道分区表名称即可。
分区后只是表的存储格式变了。