2017-10-10 36 views
1

oracleでdbms_metadata.get_ddl関数を使用して開発データベースの1つからテーブルを再作成しようとしています。例えば:無効な識別子以下dbms_metadata.get_ddl ... DDLプロデューサで構文エラーが発生する

は、DDLのsytaxです:

CREATE TABLE "XVIEWMGR"."ogaPatch2892_TAB" OF XMLTYPE 
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 "TBSDATA" 
VARRAY "XMLEXTRA"."NAMESPACES" 
    STORE AS BASICFILE LOB "NAMESPACES2895_L" (
    ENABLE STORAGE IN ROW 
    CHUNK 8192 
    RETENTION 
    CACHE 
    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)) 
VARRAY "XMLEXTRA"."EXTRADATA" 
    STORE AS BASICFILE LOB "EXTRADATA2894_L" (
    ENABLE STORAGE IN ROW 
    CHUNK 8192 
    RETENTION 
    CACHE 
    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)) 
VARRAY "XMLDATA"."SYS_XDBPD$" 
    STORE AS BASICFILE LOB "SYS_XDBPD$2893_L" (
    ENABLE STORAGE IN ROW 
    CHUNK 8192 
    RETENTION 
    CACHE 
    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)) 
それは私がしかし、それは誤り

ORA-00904を生産する実行している必要があるDDLを生成し

SELECT dbms_metadata.get_ddl('TABLE','ogaPatch2892_TAB','XVIEWMGR')from dual; 

答えて

0

以下のようにすべて行う必要があります。ストレージパラメタを指定する必要はありません。 DBAによってデータベースがインストールまたは設定されたときに設定されたデフォルト値が自動的に選択されます。

CREATE TABLE XVIEWMGR.ogaPatch2892_TAB OF XMLTYPE; 
+1

ありがとうございます。対応するロブセグメントが二重引用符で囲まれた名前で作成されていることを確認したいだけです。 –

+1

@ Mr.Eva dbms_metadata.get_ddl()の実行中にStorageパラメータをfalseに設定すると、ouputはストレージパラメータを除外する必要があります。このhttp://www.dba-oracle.com/t_1_dbms_metadata.htmをお読みください – XING

関連する問題