我正在和我正在参加的班上很困难。我们需要编写一个像DESCRIBE命令一样的Oracle脚本。我们使用的书籍描述了如何使用数据字典非常糟糕。不寻找答案,而是正确的方向。
您正在寻找
原文链接:https://www.f2er.com/oracle/205737.htmlUSER_TAB_COLUMNS
– 查询在 – 或
ALL_TAB_COLUMNS
中执行的模式中的所有列及其描述与用户有权查看的所有表格相同。
典型的查询可能是:
select * from user_tab_columns where table_name = 'MY_TABLE' order by column_id
column_id是表中列的“顺序”。
你应该确保’MY_TABLE’被大写,除非你已经添加了表壳(一个坏主意),在这种情况下你需要使用像“MyTable”这样的东西。
具体的desc相当于我从ss64那里偷走了一个很好的Oracle资源:
select column_name as "Name",nullable as "Null?",concat(concat(concat(data_type,'('),data_length),')') as "Type" from user_tab_columns where table_name = 'MY_TABLE';
您可以通过选择*从字典找到所有这种视图,这是data dictionary的顶级或通过查看documentation。
还有DBA_TAB_COLUMNS,与ALL_TAB_COLUMNS相同,但对于数据库中的每个表。这假设您有权查看它和表。如果您无法访问此表,则需要让DBA授予您SELECT ANY DICTIONARY权限。