你可以使用:
SELECT owner, view_name, cnt
FROM all_views, XMLTABLE('/ROWSET/ROW' passing (
dbms_xmlgen.getxmltype(REPLACE(REPLACE(
'select COUNT(*) AS cnt from "<owner>"."<table_name>"', '<owner>', owner)
, '<table_name>', view_name))) COLUMNS cnt INT)
WHERE cnt > 0;
Run Code Online (Sandbox Code Playgroud)
编辑:
如果我们只想检查视图是否有行,我们可以COUNT与EXISTS. 这也应该会提高性能。
SELECT owner, view_name, has_rows
FROM all_views, XMLTABLE('/ROWSET/ROW' passing (
dbms_xmlgen.getxmltype(REPLACE(REPLACE(
'select CASE WHEN EXISTS(SELECT 1 from "<owner>"."<table_name>")
THEN 1 ELSE 0 END AS has_rows FROM dual', '<owner>', owner)
, '<table_name>', view_name))) COLUMNS has_rows INT)
WHERE has_rows > 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
287 次 |
| 最近记录: |