我在 SQL Developer 中使用 Spool 將輸出轉換為 CSV 檔案。我聽說可以使用 DDL 命令來獲取表的創建查詢。
我的查詢如下
spool "path/output.csv"
@"path/query.sql";
spool of;
和sql如下
set sqlformat loader
select * from table;
你能建議我如何使用 DDL 命令在 .csv 檔案中假脫機表的創建查詢。
uj5u.com熱心網友回復:
DBMS_METADATA 是 Oracle 的一般答案。但是,如果您使用 SQL Developer,就像您在問題中標記的那樣,那么您可以簡單地使用 DDL 命令。
什么是 DDL?它是一個客戶端命令,您可以在 SQLcl 和 SQL Developer 中運行,為您構建 dbms_metadata.get_ddl() 代碼。
那么我們:
- 設定我們的 DDL 選項,我們希望它看起來如何
- 不包括假脫機檔案中的命令
- 在我們的假脫機檔案中不包括“選擇的 4 行”
- 指定我們想要假脫機檔案的位置
- 啟動假脫機,設定檔案名
- 求ddl
- 詢問 CSV 中的表格行
- 關閉線軸
代碼:
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

uj5u.com熱心網友回復:
怎么樣
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>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/417785.html
標籤:
