加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

oracle – 获取模式中所有表的计数

发布时间:2020-12-12 13:52:57 所属栏目:百科 来源:网络整理
导读:我试图获取模式中所有表的记录计数。我无法编写PL / SQL。这是我到目前为止所做的,但我收到错误。请建议任何更改: DECLAREv_owner varchar2(40);v_table_name varchar2(40);cursor get_tables isselect distinct table_name,userfrom user_tableswhere low
我试图获取模式中所有表的记录计数。我无法编写PL / SQL。这是我到目前为止所做的,但我收到错误。请建议任何更改:
DECLARE
v_owner varchar2(40);
v_table_name varchar2(40);

cursor get_tables is
select distinct table_name,user
from user_tables
where lower(user) = 'SCHEMA_NAME';


begin

open get_tables;
fetch get_tables into v_table_name,v_owner;

    INSERT INTO STATS_TABLE(TABLE_NAME,SCHEMA_NAME,RECORD_COUNT,CREATED)
    SELECT v_table_name,v_owner,COUNT(*),TO_DATE(SYSDATE,'DD-MON-YY') FROM         v_table_name;

CLOSE get_tables;

END;
这应该做到:
declare
    v_count integer;
begin

    for r in (select table_name,owner from all_tables
              where owner = 'SCHEMA_NAME') 
    loop
        execute immediate 'select count(*) from ' || r.table_name 
            into v_count;
        INSERT INTO STATS_TABLE(TABLE_NAME,CREATED)
        VALUES (r.table_name,r.owner,v_count,SYSDATE);
    end loop;

end;

我从您的代码中删除了各种错误。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读