首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未启用延迟段创建功能(ORA-00439)

未启用延迟段创建功能(ORA-00439)
EN

Stack Overflow用户
提问于 2016-06-21 18:01:29
回答 2查看 14.6K关注 0票数 6

我有一个用于60多个表的.sql脚本文件。我正在尝试将脚本复制粘贴到SQL Developer中,连接到一个名为"Oracle database 11g Express Edition Release 11.2.0.2.0 - 64bit Production“的数据库。

DDL脚本示例:

代码语言:javascript
运行
复制
CREATE TABLE UserName."Table_Name" 
   (    "Col1" NUMBER(*,0), 
    "Col2" VARCHAR2(50 BYTE), 
    "Col3" VARCHAR2(50 BYTE)
   ) SEGMENT CREATION DEFERRED 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  TABLESPACE "USERS" ;

Error report -
SQL Error: ORA-00439: feature not enabled: Deferred Segment Creation
00439. 00000 -  "feature not enabled: %s"
*Cause:    The specified feature is not enabled.
*Action:   Do not attempt to use this feature.

如果我在DDL脚本中删除SEGMENT CREATION DEFERRED

代码语言:javascript
运行
复制
CREATE TABLE UserName."Table_Name" 
   (    "Col1" NUMBER(*,0), 
    "Col2" VARCHAR2(50 BYTE), 
    "Col3" VARCHAR2(50 BYTE)
   ) 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  TABLESPACE "USERS" ;

这是可行的。但我不能在每个表脚本中手动删除它。

如果我有.dmp转储文件,那么以下语法也可以解决这个问题;在源实例上:

代码语言:javascript
运行
复制
EXPDP user/pwd dumpfile=somename.dmp directory=DATA_DUMP_DIR nologfile=Y version=10.2

在目标实例上

代码语言:javascript
运行
复制
IMPDP user/pwd dumpfile=somename.dmp directory=DATA_DUMP_DIR nologfile=Y version=10.2

但是我没有.dmp文件,我只有.sql文件。

这样做的最佳方式是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-21 18:34:34

延迟段创建选项is not available in Oracle 11g Express Edition (XE),这就是您正在使用的。这只是available in Enterprise Edition (EE)

如果您不想进行导出/导入,并且只能使用已有的提供的脚本文件,那么惟一的选择就是查找并删除SEGMENT CREATION DEFERRED子句的所有实例。

当然,任何文本编辑都可以做到这一点,SQL Developer has its own find/replace可以在SQL Worksheet窗口中执行此操作。

票数 9
EN

Stack Overflow用户

发布于 2018-03-12 17:30:28

只需用SEGMENT CREATION IMMEDIATE代替SEGMENT CREATION DEFERRED

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37941314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档