如何从 SQL 开发人员获取 table 的 DDL(创建 table 的查询)
how to get DDL (create query of a table) of a table from SQL Developer
我正在使用 SQL 开发人员中的 Spool 将输出导入 CSV 文件。
我听说可以在哪里使用 DDL 命令来获取 table.
的创建查询
我的查询如下
spool "path/output.csv"
@"path/query.sql";
spool of;
和sql如下
set sqlformat loader
select * from table;
你能否建议我如何使用 DDL 命令在 .csv 文件中假脱机创建 table 的查询。
怎么样
set sqlformat loader
spool "path/output.csv"
select * from table;
spool off;
根据您发表的评论,您似乎想要假脱机 CREATE TABLE
声明。如果是这样,请使用 DBMS_METADATA
包,例如
SQL> set long 10000
SQL> set pagesize 0
SQL>
SQL> select dbms_metadata.get_ddl('TABLE', 'DEPT', 'SCOTT') create_table from dual;
CREATE TABLE "SCOTT"."DEPT"
( "DEPTNO" NUMBER(2,0),
"DNAME" VARCHAR2(14),
"LOC" VARCHAR2(13),
CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USER_DATA" ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USER_DATA"
SQL>
DBMS_METADATA 是 Oracle 的一般答案。但是,如果您正在使用 SQL Developer,就像您在问题中标记的那样,那么您只需使用 DDL 命令即可。
什么是 DDL?这是一个客户端命令,您可以 运行 在 SQLcl 和 SQL 开发人员中为您构建 dbms_metadata.get_ddl() 代码。
所以让我们:
- 设置我们的 DDL 选项,我们希望它看起来如何
- 不在假脱机文件中包含命令
- 不在我们的假脱机文件中包含“选择的 4 行”
- 指定我们想要假脱机文件的位置
- 启动假脱机,设置文件名
- 求ddl
- 在 CSV 中请求 table 行
- 关闭线轴
代码:
clear screen
set ddl storage, segment_attributes off
set echo off
set feedback off
cd c:\users\jdsmith\desktop
spool regions.sql
ddl regions
select /*csv*/ * from regions;
spool off
我正在使用 SQL 开发人员中的 Spool 将输出导入 CSV 文件。 我听说可以在哪里使用 DDL 命令来获取 table.
的创建查询我的查询如下
spool "path/output.csv"
@"path/query.sql";
spool of;
和sql如下
set sqlformat loader
select * from table;
你能否建议我如何使用 DDL 命令在 .csv 文件中假脱机创建 table 的查询。
怎么样
set sqlformat loader
spool "path/output.csv"
select * from table;
spool off;
根据您发表的评论,您似乎想要假脱机 CREATE TABLE
声明。如果是这样,请使用 DBMS_METADATA
包,例如
SQL> set long 10000
SQL> set pagesize 0
SQL>
SQL> select dbms_metadata.get_ddl('TABLE', 'DEPT', 'SCOTT') create_table from dual;
CREATE TABLE "SCOTT"."DEPT"
( "DEPTNO" NUMBER(2,0),
"DNAME" VARCHAR2(14),
"LOC" VARCHAR2(13),
CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USER_DATA" ENABLE
) SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USER_DATA"
SQL>
DBMS_METADATA 是 Oracle 的一般答案。但是,如果您正在使用 SQL Developer,就像您在问题中标记的那样,那么您只需使用 DDL 命令即可。
什么是 DDL?这是一个客户端命令,您可以 运行 在 SQLcl 和 SQL 开发人员中为您构建 dbms_metadata.get_ddl() 代码。
所以让我们:
- 设置我们的 DDL 选项,我们希望它看起来如何
- 不在假脱机文件中包含命令
- 不在我们的假脱机文件中包含“选择的 4 行”
- 指定我们想要假脱机文件的位置
- 启动假脱机,设置文件名
- 求ddl
- 在 CSV 中请求 table 行
- 关闭线轴
代码:
clear screen
set ddl storage, segment_attributes off
set echo off
set feedback off
cd c:\users\jdsmith\desktop
spool regions.sql
ddl regions
select /*csv*/ * from regions;
spool off