达梦数据库查询数据库所有表名_Oracle 以及 达梦数据库简单查询所有表行数的存储过程...

1. 今天有一个场景需要查询一个数据库实例下面所有的表的行数.

本来想查询 user_tables 视图 但是发现 这个视图里面 达梦数据库 里面存的是null的..

百度之后发现一个解决方案是 使用存储过程, 然后简单进行了一下修改, 在产品部 胡平老师的帮助下实现了.

方法为:

1. 创建一个空表

create table zhaobsh (tablename varchar(200),tablenum varchar(200));

一个存储表名 一个存储列数

2. 根据百度修改了一下 创建一个存储过程

备注 发现有人弄了很多 _ 开头的备份表 发现这些备份表会报错, 没办法 找了一下语法 排除所有 带_ 的表.

另外发现能创建 一个float的数据库表很神奇 编译过程中不报错, 调用过程中会报错 drop table 还drop不了 只能通过gui的方式删除..

神奇.

create or replace PROCEDURE zhaobsh_procedure

IS

declare

v_sql varchar2(200);

v_cnt number(10);

beginfor v_tab in (select table_name fromuser_tables t where table_name not like '%a_%'  ESCAPE 'a'  ) loop

v_sql := 'select count(*) from'||v_tab.table_name;

execute immediate v_sql into v_cnt;

insert into zhaobsh values (v_tab.table_name,v_cnt);

end loop;

end;/

3. 然后执行存储过程的调用.

可以先清理一下环境.

delete fromzhaobsh

call"GSCLOUD"."ZHAOBSH_PROCEDURE"();select * from zhaobsh order by tablename asc

就能够看到响应的表记录信息了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值