You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c如何查询dba_tables中最后10张表?能否用-10实现?

获取Oracle 19c dba_tables中最后10张表的方法

首先明确:Oracle的FETCH FIRST语法不支持使用负数(比如-10)来直接获取最后N行,这种写法完全无效。

要获取dba_tables中的最后10张表,核心是先通过排序定义“最后”的逻辑(因为视图返回的行没有固定的默认顺序),再取前10行,具体实现方式如下:

  • 选择一个用于排序的字段(比如表名table_name、最后修改时间last_ddl_time等),按该字段倒序排列
  • 再使用FETCH FIRST 10 ROWS ONLY取出前10行,这部分就是原顺序下的最后10行

示例SQL(按表名倒序取最后10张表):

SELECT table_name 
FROM dba_tables 
ORDER BY table_name DESC
FETCH FIRST 10 ROWS ONLY;

如果想按最后修改时间取最新的10张表(时间维度的“最后”),可以用:

SELECT table_name 
FROM dba_tables 
ORDER BY last_ddl_time DESC
FETCH FIRST 10 ROWS ONLY;

注意:必须指定排序字段,否则dba_tables返回的行顺序是不确定的,“最后10行”的结果也会随机变化。

内容的提问来源于stack exchange,提问作者Abdellah karani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:52:03