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

如何在Oracle CLI中仅查询用户自行创建的表名称?

仅查询Oracle中用户自行创建的表名

在Oracle数据库中,user_tables视图返回的是当前用户名下的所有表,其中会包含系统自动生成的表(比如回收站表、文本索引关联表等)。要仅展示用户手动创建的表名,可通过以下几种实用方法实现:

方法一:按表名前缀排除系统表

多数系统生成的表会带有固定前缀,直接通过LIKE关键字过滤即可:

SELECT table_name 
FROM user_tables
WHERE table_name NOT LIKE 'BIN$%'  -- 排除回收站中的表
  AND table_name NOT LIKE 'DR$%'; -- 排除文本索引相关的系统表

方法二:结合创建时间筛选

如果能确定自己创建表的大致时间范围,可以关联user_objects视图按创建时间过滤:

SELECT ut.table_name
FROM user_tables ut
JOIN user_objects uo ON ut.table_name = uo.object_name
WHERE uo.created >= TO_DATE('2023-01-01', 'YYYY-MM-DD') -- 替换为你开始创建表的日期
  AND uo.object_type = 'TABLE';

方法三:手动指定排除系统表

若你清楚环境中存在哪些系统生成的表,可直接用NOT IN指定排除列表:

SELECT table_name
FROM user_tables
WHERE table_name NOT IN ('SYSTEM_TABLE_1', 'SYSTEM_TABLE_2'); -- 替换为实际系统表名

注意事项

  • user_tables仅展示当前登录用户拥有的表,若需查看所有用户的表,可使用all_tables或dba_tables(需对应权限)。
  • 不同Oracle环境中系统表的命名规则可能略有差异,建议先执行SELECT table_name FROM user_tables;查看全量表名,再针对性调整过滤条件。

内容的提问来源于stack exchange,提问作者KHAN SAHAB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:52:10