CREATE OR REPLACE FUNCTION Get_Record_Count(p_table_name varchar2)
10多年的江安网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整江安建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“江安网站设计”,“江安网站推广”以来,每个客户项目都认真落实执行。
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
没编译 测试 运行 过.
方法如下:
输入select * from dba_users; 即可。
常用语句:
一,查看数据库里面所有用户:
select * from dba_users;
前提是你是有dba权限的帐号,如sys,system。
二,查看你能管理的所有用户:
select * from all_users;
三,查看当前用户信息 :
select * from user_users;
扩展资料:
Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。
此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。
这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c 成为私有云和公有云部署的理想平台。
Oracle数据库具有完整的数据管理功能:
1)数据的大量性
2)数据的保存的持久性
3)数据的共享性
4)数据的可靠性
参考资料:百度百科:Oracle数据库
ORACLE下有三个视图
DBA_TABLES 拥有DBA角色的用户可以查看系统中的所有表
USER_TABLES 登录数据库的当前用户拥有的所有表
ALL_TABLES 登录数据库的当前用户有权限查看的所有表
类似的,除了表,还有视图、存储过程、同义词等等对象,使用[DBA|USER|ALL]_TABLES可以查看到你想要的对象
1、创建测试表,
create table test_cols(id varchar2(20),remark varchar2(20),ex_filed1 varchar2(20),ex_filed2 varchar2(20));
2、编写sql,查看系统视图,可以看到该用户下所有表的字段信息,select * from user_tab_cols;
3、编写sql,查询刚创建的表,字段信息,select * from user_tab_cols t where table_name = 'TEST_COLS';
4、编写sql,查询该表的字段数,这样对于字段较多的表,结果更明显;
select count(distinct column_name) from user_tab_cols t where table_name = 'TEST_COLS'
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !
-- 查询你 当前用户下,有哪些表
SELECT * FROM user_tables
-- 查询你 当前用户下, 可以访问哪些表 [也就是访问自己 和 其他用户的]
SELECT * FROM all_tables
-- 查询当前数据库所有的表, 需要你有 DBA 的权限
SELECT * FROM dba_tables
需要用count函数来实现。
如test表中有如下数据:
现要查询每个deptno下的人数,可用如下语句:
select deptno,count(*) from emp group by deptno;
查询结果: