获取Oracle表中字段的注释信息
【摘要】 在Oracle数据库中,字段(列)的注释存储在数据字典视图USER_COL_COMMENTS(当前用户)或ALL_COL_COMMENTS(有权限的所有表)中。以下是获取字段注释的方法: 1. 获取特定表中所有字段的注释SELECT a.table_name, a.column_name, a.data_type, a.data_length, a.nulla...
在Oracle数据库中,字段(列)的注释存储在数据字典视图USER_COL_COMMENTS
(当前用户)或ALL_COL_COMMENTS
(有权限的所有表)中。以下是获取字段注释的方法:
1. 获取特定表中所有字段的注释
SELECT
a.table_name,
a.column_name,
a.data_type,
a.data_length,
a.nullable,
b.comments
FROM
user_tab_columns a
LEFT JOIN
user_col_comments b ON a.table_name = b.table_name AND a.column_name = b.column_name
WHERE
a.table_name = 'YOUR_TABLE_NAME'
ORDER BY
a.column_id;
2. 获取所有TB_打头表的字段注释
SELECT
a.table_name,
a.column_name,
a.data_type,
a.data_length,
a.nullable,
b.comments
FROM
user_tab_columns a
LEFT JOIN
user_col_comments b ON a.table_name = b.table_name AND a.column_name = b.column_name
WHERE
a.table_name LIKE 'TB\_%' ESCAPE '\'
ORDER BY
a.table_name, a.column_id;
3. 获取表注释和字段注释(完整信息)
SELECT
t.table_name,
tc.comments AS table_comment,
c.column_name,
c.data_type,
c.data_length,
c.data_precision,
c.data_scale,
c.nullable,
cc.comments AS column_comment
FROM
user_tables t
LEFT JOIN
user_tab_comments tc ON t.table_name = tc.table_name
JOIN
user_tab_columns c ON t.table_name = c.table_name
LEFT JOIN
user_col_comments cc ON t.table_name = cc.table_name AND c.column_name = cc.column_name
WHERE
t.table_name LIKE 'TB\_%' ESCAPE '\'
ORDER BY
t.table_name, c.column_id;
4. 使用ALL_ views查看有权限的所有表
SELECT
a.owner,
a.table_name,
a.column_name,
b.comments
FROM
all_tab_columns a
LEFT JOIN
all_col_comments b ON a.owner = b.owner AND a.table_name = b.table_name AND a.column_name = b.column_name
WHERE
a.table_name LIKE 'TB\_%' ESCAPE '\'
-- AND a.owner = 'SCHEMA_NAME' -- 可选:指定特定模式
ORDER BY
a.owner, a.table_name, a.column_id;
5. 动态生成查看注释的SQL语句
如果需要为多个表快速生成查看注释的SQL,可以使用:
SELECT
'SELECT ''' || table_name || ''' AS table_name, column_name, comments FROM user_col_comments WHERE table_name = ''' || table_name || ''' ORDER BY column_id;' AS sql_statement
FROM
user_tables
WHERE
table_name LIKE 'TB\_%' ESCAPE '\';
执行后会生成一系列SQL语句,可以复制出来逐个执行查看每个表的字段注释。
注意事项
- 如果字段没有设置注释,
comments
列将为NULL - 确保你有足够的权限查询这些数据字典视图
- 对于分区表,可能需要查询
USER_PART_KEY_COLUMNS
等额外视图获取分区键信息 - 要添加或修改注释,可以使用
COMMENT ON COLUMN
语句
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)