如何用SQL*Plus取得DDL


有時候我們只能在有SQL*Plus的環境下使用,如果遇到需要DDL的時候,
可以用DBMS_METADATA.GET_DDL(,)。

例如:

SQL> select DBMS_METADATA.GET_DDL('TABLE','TEST_02') from dual;

DBMS_METADATA.GET_DDL('TABLE','TEST_02')
--------------------------------------------------------------------------------

  CREATE TABLE "TEST01"."TEST_02"
   (    "A" VARCHAR2(100),
        "B" VARCHAR2(100),
        "C" VARCHAR2(100)
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENT
S 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT
 FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "TEST_TS"

但是一般的DDL都會很長,所以必須調整SQL*Plus的參數如下:

SET LINESIZE 10000  --每行的字數
set long 999999     --遇到long類型時,所顯示的字元數
SET PAGESIZE 1000   --每頁的行數

利用Plink替代Putty來建立Script