我在上一门课时遇到了困难。我们需要编写一个与 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';
您可以通过
select * from dictionary
找到所有此类 View 。 ,这是 data dictionary 的顶层或查看 documentation .还有
DBA_TAB_COLUMNS
,与 ALL_TAB_COLUMNS
相同,但对于数据库中的每个表。这假定您具有查看它和表的权限。如果您无权访问此表,您需要让您的 DBA 授予您 SELECT ANY DICTIONARY
特权。
关于oracle - 如何在不使用 DESCRIBE 命令的情况下描述 Oracle 中的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855209/