pat*_*ney 29 oracle sql-scripts data-dictionary oracle11g
我正在上课,我很难受.我们需要编写一个像DESCRIBE命令一样的Oracle脚本.我们使用的这本书描述了如何使用数据字典非常糟糕.不是寻找答案,而是寻找正确方向的一点.
Ben*_*Ben 41
您正在寻找USER_TAB_COLUMNS
- 所有列,以及它们在模式中执行查询的描述 - 或ALL_TAB_COLUMNS
- 除了用户有权查看的所有表之外.
典型的查询可能是:
select *
from user_tab_columns
where table_name = 'MY_TABLE'
order by column_id
Run Code Online (Sandbox Code Playgroud)
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';
Run Code Online (Sandbox Code Playgroud)
您可以找到所有这类视图select * from dictionary
,这是数据字典的顶级或查看文档.
还有,与数据库中的每个表都DBA_TAB_COLUMNS
相同ALL_TAB_COLUMNS
,但也是如此.这假设您具有查看它和表的权限.如果您无权访问此表,则需要让DBA授予您SELECT ANY DICTIONARY
特权.
Pop*_*Pop 14
您还可以检索可用于重新创建表的整个命令:
select dbms_metadata.get_ddl('TABLE','<my table name>','<table owner>') from dual;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
82307 次 |
最近记录: |