项目场景:
数据库文档中,需要(列名,列注释)两列
问题描述
数据库文档中,需要(列名,列注释)两列,而且不止一张表,是很多张,这个时候,肯定要找一个批量作业的办法,比如:
- 让第三方工具 (*.exe) 自动生成数据库文档
- 使用代码的形式去生成
- 手动输入字段
原因分析:
解决方案:
sql
select column.column_name as "列名",
comment.comments as "列注释",
-- column.column_id as "列ID"
from all_tab_columns column
left join all_col_comments comment
on column.column_name = comment.column_name and comment.TABLE_NAME = '你的表名,比如 emp员工表'
where column.table_name = '你的表名,比如 emp员工表'
order by column.column_id;
在Oracle数据库中,all_tab_columns和all_col_comments是两个系统视图(System View),它们分别用于存储表的列信息和列注释信息。
-
all_tab_columns:这个视图包含了所有用户定义的表以及系统表的所有列的信息。它提供了关于每个列的名称、数据类型、长度、精度、是否可为空等信息。通过查询这个视图,可以获取到表的结构信息。
-
all_col_comments:这个视图包含了所有用户定义的表以及系统表的列注释信息。它提供了关于每个列的注释内容,这些注释通常用于描述列的含义或用途。通过查询这个视图,可以获取到表的列注释信息。
这两个视图通常结合使用,以便同时获取表的结构和注释信息。例如,上述代码中的查询就是通过连接all_tab_columns和all_col_comments来获取指定表('你的表名,比如 emp员工表')的所有列名、列注释以及列ID,并按照列ID进行排序。