我需要获得表格的定义。
我可以使用哪个命令来获取此信息。我尝试使用create table A
(
id NUMBER(9) not null,
name VARCHAR2(1024) not null,
description VARCHAR2(1024)
)
tablespace DATA01
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 128K
next 1M
minextents 1
maxextents unlimited
pctincrease 0
);
,但它没有帮助。
假设之前使用此DDL创建了一个表:
doSNOW
如何重新创建此声明?
答案 0 :(得分:2)
使用DBMS_METADATA.get_ddl
。
DBMS_METADATA.GET_DDL (
object_type IN VARCHAR2,
name IN VARCHAR2,
schema IN VARCHAR2 DEFAULT NULL,
version IN VARCHAR2 DEFAULT 'COMPATIBLE',
model IN VARCHAR2 DEFAULT 'ORACLE',
transform IN VARCHAR2 DEFAULT 'DDL')
RETURN CLOB;
e.g。
select DBMS_METADATA.GET_DDL('TABLE','A') from dual;
https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_metada.htm#ARPLS66885
答案 1 :(得分:0)
您可以使用USER_TAB_COLUMNS
:
SELECT *
FROM user_tab_columns
WHERE table_name = (SELECT name from A WHERE ...)
ORDER BY column_id
我认为A
有一个表名列表,所以你想为上面的查询选择其中一个,但我不知道你想在{{1}中使用什么条件}子句,所以我离开了那部分。