【发布时间】:2015-01-30 05:53:32
【问题描述】:
如何从 all_views 获取单个视图的总记录数。 请找到以下代码以供参考..
Declare
view_name VARCHAR2(200);
v_str VARCHAR2 (1000);
v_output VARCHAR2(4000);
CURSOR tbl IS
SELECT view_name
FROM all_views
WHERE OWNER = SYS_CONTEXT( 'USERENV', 'CURRENT_SCHEMA')
ORDER BY 1 ;
BEGIN
OPEN tbl ;
LOOP
FETCH tbl INTO view_name;
EXIT WHEN tbl%NOTFOUND;
v_str := 'Select '''|| view_name ||' '' || count (*) from ' || view_name ;
EXECUTE IMMEDIATE v_str INTO v_output;
DBMS_OUTPUT.PUT_LINE(v_output);
END LOOP;
CLOSE tbl;
END;
当前输出:
V_DSP_BUSINESS_DATE 10
V_DSP_DEPARTMENT 20
V_DSP_EMPLOYEE_DEACTIVATED 50
V_DSP_EMPLOYEE_GED 80
预期输出:
sum up the record count of all individual views
i.e 160
请帮忙。
【问题讨论】:
-
您能否使您的预期输出更清晰,即您只想要 160 没有视图名称或 160 对每个视图名称。
-
在循环内添加计数并将 dbms_output 放在结束循环之后。看我的回答。
标签: oracle plsql plsqldeveloper