Oracle 中“.schema sqlite_master”的等效项
An equivalence of ".schema sqlite_master" in Oracle
我正在尝试对 SQLite 和 Oracle 进行同样的练习。在 SQLite 中,有一个 table sqlite_master
包含对数据库中包含的所有其他 table、索引、触发器和视图的描述。我可以看到使用 .schema sqlite_master
.
生成 sqlite_master
的查询
在Oracle中,数据字典是以多个视图(DBA
、ALL
或USER
)的形式呈现给我们的。我们以 table USER_TABLES
为例。我们可以查询USER_TABLES
,例如
SELECT table_name
FROM USER_TABLES;
是否可以获取用于在 Oracle 中创建 table USER_TABLES
的查询?我试过了
SELECT dbms_metadata.get_ddl('TABLE', 'USER_TABLES')
FROM dual;
但它不起作用。
我不确定你在找什么,但如果你想在 oracle 中定义任何 table,你可以使用 :
Describe TableName
或者,如果您想要 table 的列表、视图或列,您可以使用以下查询:
表格:
select * from select * from all_tables
对于列:
select * from all_tab_columns
观看次数:
select * from select * from all_views
获取一个table的所有列信息:
select *
from all_tab_columns
where upper(table_name) = upper('Test')
order by column_id
通常 oracle 以大写形式存储 table_name,所以我使用 upper() 或者您可以只键入 'TEST'
你可以使用这个:
DECLARE
DDL CLOB;
BEGIN
FOR aTab IN (SELECT TABLE_NAME FROM USER_TABLES) LOOP
DDL := DBMS_METADATA.GET_DDL('TABLE', aTab.TABLE_NAME);
DBMS_OUTPUT.PUT_LINE(DDL);
END LOOP;
END;
您可以在 运行 查询之前使用 DBMS_METADATA.SET_TRANSFORM_PARAM()
自定义输出。
我正在尝试对 SQLite 和 Oracle 进行同样的练习。在 SQLite 中,有一个 table sqlite_master
包含对数据库中包含的所有其他 table、索引、触发器和视图的描述。我可以看到使用 .schema sqlite_master
.
sqlite_master
的查询
在Oracle中,数据字典是以多个视图(DBA
、ALL
或USER
)的形式呈现给我们的。我们以 table USER_TABLES
为例。我们可以查询USER_TABLES
,例如
SELECT table_name
FROM USER_TABLES;
是否可以获取用于在 Oracle 中创建 table USER_TABLES
的查询?我试过了
SELECT dbms_metadata.get_ddl('TABLE', 'USER_TABLES')
FROM dual;
但它不起作用。
我不确定你在找什么,但如果你想在 oracle 中定义任何 table,你可以使用 :
Describe TableName
或者,如果您想要 table 的列表、视图或列,您可以使用以下查询: 表格:
select * from select * from all_tables
对于列:
select * from all_tab_columns
观看次数:
select * from select * from all_views
获取一个table的所有列信息: select *
from all_tab_columns
where upper(table_name) = upper('Test')
order by column_id
通常 oracle 以大写形式存储 table_name,所以我使用 upper() 或者您可以只键入 'TEST'
你可以使用这个:
DECLARE
DDL CLOB;
BEGIN
FOR aTab IN (SELECT TABLE_NAME FROM USER_TABLES) LOOP
DDL := DBMS_METADATA.GET_DDL('TABLE', aTab.TABLE_NAME);
DBMS_OUTPUT.PUT_LINE(DDL);
END LOOP;
END;
您可以在 运行 查询之前使用 DBMS_METADATA.SET_TRANSFORM_PARAM()
自定义输出。