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

前端之家收集整理的这篇文章主要介绍了oracle – 获取模式中所有表的计数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图获取模式中所有表的记录计数。我无法编写PL / sql。这是我到目前为止所做的,但我收到错误。请建议任何更改:
  1. DECLARE
  2. v_owner varchar2(40);
  3. v_table_name varchar2(40);
  4.  
  5. cursor get_tables is
  6. select distinct table_name,user
  7. from user_tables
  8. where lower(user) = 'SCHEMA_NAME';
  9.  
  10.  
  11. begin
  12.  
  13. open get_tables;
  14. fetch get_tables into v_table_name,v_owner;
  15.  
  16. INSERT INTO STATS_TABLE(TABLE_NAME,SCHEMA_NAME,RECORD_COUNT,CREATED)
  17. SELECT v_table_name,v_owner,COUNT(*),TO_DATE(SYSDATE,'DD-MON-YY') FROM v_table_name;
  18.  
  19. CLOSE get_tables;
  20.  
  21. END;
这应该做到:
  1. declare
  2. v_count integer;
  3. begin
  4.  
  5. for r in (select table_name,owner from all_tables
  6. where owner = 'SCHEMA_NAME')
  7. loop
  8. execute immediate 'select count(*) from ' || r.table_name
  9. into v_count;
  10. INSERT INTO STATS_TABLE(TABLE_NAME,CREATED)
  11. VALUES (r.table_name,r.owner,v_count,SYSDATE);
  12. end loop;
  13.  
  14. end;

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

猜你在找的Oracle相关文章