加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 13:51:56 所属栏目:百科 来源:网络整理
导读:我正在和我正在参加的班上很困难。我们需要编写一个像DESCRIBE命令一样的Oracle脚本。我们使用的书籍描述了如何使用数据字典非常糟糕。不寻找答案,而是正确的方向。 您正在寻找 USER_TAB_COLUMNS – 查询在 – 或 ALL_TAB_COLUMNS 中执行的模式中的所有列及
我正在和我正在参加的班上很困难。我们需要编写一个像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权限。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读