首页 > 解决方案 > Oracle 中“.schema sqlite_master”的等价物

问题描述

我正在尝试对 SQLite 和 Oracle 做同样的练习。在 SQLite 中,有一个表sqlite_master包含数据库中包含的所有其他表、索引、触发器和视图的描述。我可以看到要生成的sqlite_master查询.schema sqlite_master

DBA在 Oracle 中,数据字典以多个视图(ALLUSER)的形式呈现给我们。我们以表格USER_TABLES为例。USER_TABLES例如,我们可以查询

SELECT table_name
FROM USER_TABLES;

无论如何要获取用于USER_TABLES在 Oracle 中创建表的查询?我试过了

SELECT dbms_metadata.get_ddl('TABLE', 'USER_TABLES')
FROM dual;

但它不起作用。

标签: sqloraclesqlitedata-dictionary

解决方案


我不确定你在找什么,但如果你想在 oracle 中定义任何表,你可以使用:

Describe TableName

或者,如果您想获得表、视图或列的列表,您可以使用以下查询: 对于表:

select * from select * from all_tables 

对于列:

select * from all_tab_columns

对于视图:

select * from select * from all_views 

获取一个表的所有列信息: select *

 from all_tab_columns
 where upper(table_name) = upper('Test')
 order by column_id

通常 oracle 以大写形式存储 table_name 所以我使用了 upper() 或者你可以只输入“TEST”


推荐阅读