我有.sql
脚本文件和DDL超过60个表。我正在尝试将脚本复制粘贴到SQL Developer中,连接到“Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production”的数据库。
示例DDL脚本:
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
:
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
转储文件,那么以下语法也将解决问题;在源实例上:
EXPDP user/pwd dumpfile=somename.dmp directory=DATA_DUMP_DIR nologfile=Y version=10.2
并在目标实例上
IMPDP user/pwd dumpfile=somename.dmp directory=DATA_DUMP_DIR nologfile=Y version=10.2
但我没有.dmp
个文件,我只有.sql
个文件。
这是最好的方法吗?
答案 0 :(得分:7)
延迟细分创建选项is not available in Oracle 11g Express Edition (XE),这是您正在使用的选项。这只是available in Enterprise Edition (EE)。
如果您不想进行导出/导入并且只能使用已提供的脚本文件,则唯一的选择是查找并删除SEGMENT CREATION DEFERRED
子句的所有实例。
当然,任何文本编辑都可以在SQL工作表窗口中执行,并且SQL Developer has its own find/replace。
答案 1 :(得分:1)
只需使用<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl as vm">
<input type="text" ng-model="search">
<table>
<tr ng-repeat="data in vm.records | filter:search">
<td>{{data.name}}</td>
</tr>
</table>
</div>
代替SEGMENT CREATION IMMEDIATE