dbms_metadata.get_ddl ... DDL生成语法错误
问题描述:
我正尝试在oracle中使用dbms_metadata.get_ddl函数从我们的开发数据库之一重新创建表。例如dbms_metadata.get_ddl ... DDL生成语法错误
SELECT dbms_metadata.get_ddl('TABLE','ogaPatch2892_TAB','XVIEWMGR')from dual;
它确实产生,我需要但运行会产生错误
ORA-00904的DDL:无效的标识符
下面是DDL的语法时才:
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))
答
您只需按照以下步骤操作即可。无需指定存储参数。当DBA安装或设置数据库时,Oracle会自动选取默认值。
CREATE TABLE XVIEWMGR.ogaPatch2892_TAB OF XMLTYPE;
谢谢。你是对的只是想确保相应的lob段创建与这些名称封装在双引号。 –
@ Mr.Eva您可以在执行dbms_metadata.get_ddl()时将Storage参数设置为false,以便输出应排除存储参数。阅读此http://www.dba-oracle.com/t_1_dbms_metadata.htm – XING