sql - Oracle - 对结果集的每一行执行操作

标签 sql oracle ssrs-2008

我需要查询方面的帮助。该查询返回数据库中所有 View 的列。我的最终目标是让整个结果集成为包含数据库中所有 View 的一列,另一列包含每个对应表中存在的记录/行数。

这个:

SELECT DISTINCT OWNER, 
       OBJECT_NAME 
 FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'VIEW'
  AND OWNER = 'ADMIN'

返回第一列,但我似乎无法找到将其与以下内容结合的方法:
select count(*) from view_X

获取结果集的第二列。

任何帮助,将不胜感激。
谢谢

最佳答案

借助一些 XML 魔法,这可以通过一条语句完成:

select object_name as view_name,
       to_number(extractvalue(xmltype(dbms_xmlgen.getxml('select count(*) c from "'||owner||'"."'||object_name||'"')),'/ROWSET/ROW/C')) as row_count
from dba_objects
where object_type = 'VIEW'
  and owner = 'ADMIN'
order by 1;

关于sql - Oracle - 对结果集的每一行执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19119036/

相关文章:

多个where子句上的SQL Oracle rownum?

Oracle sqlplus 执行不同编码的文件

charts - 图表中的纵轴重复值 - SQL Reporting Services 2008

excel - Reporting Services Excel 渲染扩展?

reporting-services - 是否可以在自定义代码中同时使用 C# 和 VB.NET?

sql - 了解 Sql Server 查询 - ORDER BY 子句中的 CASE

sql - SQL 中按日期排序

sql - 如何比较 postgres 更新策略中一行的旧值和新值

php - 简单的 PHP 不填充页面

sql - 为什么使用 COALESCE 或 CASE 不断返回 null