我想在架构中执行选择查询时计算表中的所有记录。
每次我都不能从(select_query)中写入select count(*)。 我想要一个实用程序,过程,函数等来计算表中的记录 注意:我使用SQL devloper工具。
答案 0 :(得分:0)
查询似乎特别奇怪。这可能会严重削弱您的数据库。 (根据优化程序模式和数据库的使用级别,这将" kill" it。)
我看到的唯一方法是使用细粒度审核(DBMS_FGA)as explained here。
从示例中添加类似
的内容应该很容易select_sql := sys_context('userenv','current_sql');
if instr(select_sql, 'select /*counter*/ count(*)') = 0 then
nb_rows := execute immediate('select /*counter*/ count(*) from (' || select_sql || ')');
end if;
并将结果存储在专用表中或发送到其他地方。
当然,你应该为每个表生成一个触发器。