Oracle数据库中含#符号的特殊表名含义咨询
Oracle数据库表名中#符号的含义解析
自定义业务/运维命名标记
这类带#的表最常见的原因是团队自定义的命名规则:用来区分临时表、故障恢复备份表、特殊业务模块的表。比如你提到的DR#OBJECT_ATTR,DR可能对应灾难恢复(Disaster Recovery)模块,#作为分隔符区分前缀和表名主体;N#TERMIS可能是某业务线(比如N开头的模块)的特殊表。故障恢复遗留对象
因为数据库曾发生故障,这些表大概率是恢复过程中生成的临时表:比如手动恢复时用来暂存故障前的数据、对比恢复前后数据差异的中间表,或者是恢复工具自动生成的备份表。像UT_RRORCHA#O看起来像是拼写失误的命名(比如原本想命名UT_ERROR_CHANGE),更符合应急恢复时的临时命名场景。排除Oracle系统原生临时表
Oracle系统自带的临时表(比如全局临时表、系统临时对象)命名通常是SYS_TEMP_XXXX格式,不会用#作为自定义分隔符,所以你的这些表肯定不是Oracle原生的系统临时对象。第三方工具生成表
如果数据库用过第三方备份、数据校验或迁移工具,这类工具可能会用#作为标记生成临时表,用来存储中间数据或元信息。
验证建议
可以通过查询数据字典获取更多线索,执行以下SQL:
SELECT owner, table_name, created, last_ddl_time, temporary FROM dba_tables WHERE table_name LIKE '%#%';
查看表的创建时间(是否和故障时间匹配)、所属用户、是否为临时表,能更精准判断这些表的用途。
内容的提问来源于stack exchange,提问作者SkyeBoniwell
相关产品推荐
相关产品推荐

