如何在不使用DESCRIBE命令的情况下在Oracle中描述表?

前端之家收集整理的这篇文章主要介绍了如何在不使用DESCRIBE命令的情况下在Oracle中描述表?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在和我正在参加的班上很困难。我们需要编写一个像DESCRIBE命令一样的Oracle脚本。我们使用的书籍描述了如何使用数据字典非常糟糕。不寻找答案,而是正确的方向。
您正在寻找 USER_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权限。

原文链接:https://www.f2er.com/oracle/205737.html

猜你在找的Oracle相关文章