2016-06-21 4 views
3

60 개 이상의 테이블에 대해 DDL이있는 .sql 스크립트 파일이 있습니다. 나는 "Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production"이라는 데이터베이스에 연결된 SQL Developer에 스크립트를 복사하여 붙여 넣으려고합니다.지연된 세그먼트 생성 기능을 사용할 수 없음 (ORA-00439)

샘플 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이면 다음 구문을 사용하여 문제를 해결할 수도 있습니다. 소스 인스턴스 : 나는 .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 

하지만, 나는 단지 .sql 파일이 있습니다.

이렇게하는 가장 좋은 방법은 무엇입니까?

+1

당신의'.sql' 파일은 어디에서오고, XE가 지원하지 않는 절을 생성 할 수 없다면, 왜 세그먼트 생성 절을 편집 할 수 없습니까? 꽤 사소한 찾기/바꾸기처럼 보입니까? –

+0

수정/답장을 보내 주셔서 감사합니다. * .sql 파일은 DB가 설치된 로컬 시스템에 있습니다. 찾기/바꾸기가 바로 지금까지했던 작업입니다. 그러나 "절 XE가 지원하지 않는다"는 것은 무엇을 의미합니까? – MAX

답변

6

지연 세그먼트 생성 옵션 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을 수행 할 수 있습니다.