.sql
スクリプト・ファイルに60を超えるテーブル用のDDLがあります。私は、 "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
ダンプファイルを持っていれば、次の構文も問題を解決します。ソース・インスタンス上:
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
ファイルを持って、.dmp
ファイルを持っていません。
これを実行する最善の方法はどれですか?
あなたの '.sql'ファイルはどこから来ていますか?XEがサポートしていない句がないとそれを生成できない場合、なぜセグメント作成句を編集できませんか?それはかなり些細な発見/交換のように思えますか? –
編集/返信ありがとうございます。 * .sqlファイルは、DBがインストールされているローカルシステムにあります。 Find/Replaceは、私が今行っていることがうまく動作します。しかし、「XEはサポートしていません」とは何を意味しますか? – MAX