1、本文以plsql图形化管理工具为例,使用它连接oracle数据库。当点开plsql的时候,就需要输入用户名、密码、数据库然后连接。如果连接成功,就能查看里面的表等等 *** 作,如果连接不成功,就输入正确的信息再次尝试。
2、连接上数据库之后,默认会看到这个主界面。顶部是各种 *** 作菜单,左侧第一个框是最近打开的一些信息,第二个框里面的才是数据库的所有信息。
3、如果不想看到这么多的框,只想专注于数据库的相关信息,就可以将其他框关闭或者隐藏,这两种方式只是点击不同的按钮而已,具体参见截图。
4、在oracle数据库中,用户是属于表空间的,因此,当使用某一个用户登录之后,看到的其实就是这个用户默认的表空间中的信息。这个时候,可以展开【Tables】菜单,就能看到当前表空间下的所有表,如果表的数量不多,就可以直接一个一个的数出数量。
5、如果当前用户具有管理员权限,还可以在【Tablespaces】菜单下面,找到所有的表空间名称,在每个表空间名称下面还有【Tables】菜单,这里面会显示这个表空间下面的所有用户和表。
注意,对于同一个表空间下的相同数据库,在这里会显示每个用户都拥有一套表结构
6、如果想直接获得表空间中的表数量,可以点击左上角的新建图标,选择【SQLWindow】,右侧就会出现一个空白的SQL语句书写窗口
7、获取指定表空间下表数量(这是包含了此表空间下的所有用户的表)
selectcount(1)fromall_tableswheretablespace_name='表空间名称'获取指定表空间下,指定用户的表数量。
selectcount(1)fromall_tableswheretablespace_name='表空间名称'andowner='用户名称'如果将count(1)换成星号,就可以查询表空间下的所有表名信息等。
方法一:以A用户登录数据库,执行select table_name from user_tables方法二:以system用户登录数据,执行select table_name from dba_tables where owner='用户名'
注意用户名大小写(因为加了“”要注意大小写)比如select table_name from dba_tables where owner='SCOTT,否则如果用select table_name from dba_tables where owner='scottT会出现未选定行提示。
create or replace procedure tj_data is-- 当前存储过程用到的变量
v_tableName VARCHAR2(100)
v_sql varchar2(200)
v_count integer
-- 获取当前数据库中的所有表
CURSOR TABLE_LOOP IS SELECT Table_name FROM User_tables
BEGIN
-- 打开游标
OPEN TABLE_LOOP
LOOP
FETCH TABLE_LOOP INTO v_tableName
EXIT WHEN TABLE_LOOP %NOTFOUND
v_sql:= 'select count(1) from '||v_tableName
execute immediate v_sql into v_count
dbms_output.put_line(v_tableName||':'||v_count)
END LOOP
CLOSE TABLE_LOOP
end tj_data
使用pl/Sql运行该存储过程,在DBMS Output窗口下可看到统计结果。(把Buffer size值适当调大一点)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)