我需要编写一个PL / SQL脚本来收集大约30个表的计数,然后将这些计数插入到一个新表中(这将有30行)。所以新表可能看起来像:
CS_ADM_CV 27
CS_CV_IBM 38
CS_CV_ORA 99
CS_YY_CIS 12
... ETC
我该怎么做呢?这就是我到目前为止,它不像我想的那样工作。
SELECT (
SELECT COUNT(*)
from STGADM.CI_ACCT
) AS 'STGADM.CI_ACCT',
/* More like this etc etc */
(
SELECT COUNT(*)
from STGADM.CI_TNDR_CTL
) as 'STGADM.CI_TNDR_CTL'
from DUAL
into STGADM-CCBMIG.CV_PLSQL_COUNT;
看起来我对如何获取所有计数然后将它们插入到新表中有错误的想法(我遗漏了琐碎的CREATE
语句)。
有人告诉我使用PL / SQL VAR来做到这一点。确定
完整代码 - http://pastebin.com/48ExZWq0
我需要任何提示/帮助,谢谢
答案 0 :(得分:2)
假设您无法使用来自num_rows
的{{1}},这可能是从收集统计信息的时间点开始的可能近似计数,而不是当前计数,最简单的方法会是
dba_tables
也可以编写一个single query that returns the number of rows in every table in a particular schema但是可以进入一些非常复杂的XML查询主题。除非您在添加新表时需要灵活地获取不同的行集,否则列出30个表可能是更容易的解决方案。