Oracle中如何筛选仅含一条记录的数据表
筛选Oracle中仅含一条记录的数据表
你可以基于原来的查询语句,通过子查询嵌套的方式添加过滤条件,直接筛选出记录数等于1的数据表。我还把原语句里的别名count改成了record_count,避免和SQL关键字冲突,也让代码更易读:
SELECT table_name, record_count FROM ( SELECT table_name, TO_NUMBER(EXTRACTVALUE(XMLTYPE(DBMS_XMLGEN.GETXML('select count(*) c from '||owner||'.'||table_name)),'/ROWSET/ROW/C')) AS record_count FROM all_tables ) WHERE record_count = 1;
如果只需要查询某个特定用户下的表,还可以在内层查询的all_tables后面加上WHERE owner = 'YOUR_SCHEMA_NAME',把YOUR_SCHEMA_NAME替换成你要指定的用户名就行,这样结果会更精准。
内容的提问来源于stack exchange,提问作者Mich
相关产品推荐
相关产品推荐

