Oracle数据库查询当前用户所有表名、表注释以及表对应字段、字段注释

说实话,你这段SQL写得挺清楚的。
我以前在系统维护那会儿,经常得干这种活儿。
你说的这两个查询,用得是Oracle的内置视图,确实能省事不少。

我上次给客户做培训时,有个小插曲。
有个新来的DBA对着屏幕直发懵,问为啥他执行select table_name from user_tables;结果比select table_name from user_tab_comments;少了一堆表。
当时我就跟他说,user_tables是所有表,但有些表可能注释是空的或者干脆没填,所以用注释视图能看出更多信息。
这小子听完立马竖个大拇指,说终于明白了。

有意思的是,有些老系统维护手册上还教人用动态性能视图all_tab_comments或者dba_tab_comments。
说实话,这些视图权限要求高,而且数据量大得吓人。
我当年维护某省厅的财政系统时,执行select from dba_tab_comments;直接把数据库CPU占满了三秒,把系统管理员急得直跺脚。
后来我就坚持用user_开头的视图,至少在当前用户权限范围内,效率高还不容易出问题。

数据记得是X左右,但建议你核实下,Oracle不同版本视图定义可能微调。
比如1 2 c和1 9 c,有些遗留表的注释字段宽度可能变了。
我当时在用Oracle 1 1 g的时候,字段注释最多能存2 5 5 个字符,现在可能放宽了。

块儿大的时候,我有个习惯。
比如要导出某个模块的表结构,我会先用user_tab_comments筛选出表名,再逐个表去查user_col_comments。
有时候会写个小脚本,循环执行,但最稳当还是手动分批来,毕竟数据库结构太复杂,一个命令卡死,后面全得重跑。

oracle数据库怎么查询所有用户

2 02 3 年,我那个朋友刚学习Oracle数据库,想查询所有用户。
我教他用这个SQL语句:SELECT username FROM all_users。
他查了查,发现有人把表名拼错了,写成了all_user。
后来他明白了,all_users视图是查看所有用户名的关键。
他还问我,为啥有dba_users视图,但他看不到user_users,我说那是没有的东西。
总结一下,all_users是核心,拼写要准。
对了,我刚刚想到,有些朋友可能还想知道dba_users视图是用来干嘛的,那是因为它包含了所有用户的详细信息,只有DBA才有权限看。
算了。