在oracle数据库中如果查询一个数据库中有哪几张表?

在oracle数据库中如果查询一个数据库中有哪几张表?,第1张

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值适当调大一点)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10858730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-11
下一篇 2023-05-11

发表评论

登录后才能评论

评论列表(0条)

保存