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

火山引擎 最新活动