如何将Oracle(C)LOB导入另一个表空间

时间:2009-12-17 09:56:02

标签: oracle import clob tablespace

我正在将数据库转储从一个Oracle 10g安装导入另一个。源具有包含多个表空间的布局。目标有一个默认表空间,供我将转储导入的用户使用。

对于普通的桌子,一切都很好。这些表从其原始表空间重新定位到用户的默认值。我面临的问题是,有几个表包含带有显式存储指令的CLOB。也就是说,他们命名他们的存储表空间。 imp命令似乎无法将这些CLOB重定位到用户的默认表空间。

imp命令是否有任何隐藏的命令行选项将CLOB存储重定位到用户的默认表空间,甚至是一个命名的表空间?

错误消息ORACLE 959如下所示:

IMP-00017: Nachfolgende Anweisung war wegen Oracle-Fehler 959 erfolglos:
 "CREATE TABLE "IF_MDE_DATA_OUT" ("OID" NUMBER(10, 0) NOT NULL ENABLE, "CLIEN"
 "T_OID" NUMBER(10, 0) NOT NULL ENABLE, "TS_CREATE" TIMESTAMP (6) NOT NULL EN"
 "ABLE, "TS_UPDATE" TIMESTAMP (6) NOT NULL ENABLE, "OP_CREATE" VARCHAR2(30) N"
 "OT NULL ENABLE, "OP_UPDATE" VARCHAR2(30) NOT NULL ENABLE, "IDENTIFIER" VARC"
 "HAR2(50), "TRANSFERTYPE" VARCHAR2(20) NOT NULL ENABLE, "STORE" NUMBER(10, 0"
 "), "DATUM" DATE, "STATE" NUMBER(3, 0) NOT NULL ENABLE, "DATA_OLD" LONG RAW,"
 " "SUPPLIER" NUMBER(10, 0), "BUYER" NUMBER(10, 0), "GOODS_OUT_IDS" VARCHAR2("
 "4000), "CUSTOM_FIELD" VARCHAR2(50), "DATA_ARCHIVE" BLOB, "DATA" BLOB)  PCTF"
 "REE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1"
 " FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "DATA32M" LOGGING NOCOMP"
 "RESS LOB ("DATA_ARCHIVE") STORE AS  (TABLESPACE "DATA32M" ENABLE STORAGE IN"
 " ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING  STORAGE(INITIAL 65536 FREELI"
 "STS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)) LOB ("DATA") STORE AS  (TABLE"
 "SPACE "DATA32M" ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGG"
 "ING  STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAUL"
 "T))"
IMP-00003: ORACLE-Fehler 959 aufgetreten
ORA-00959: Tablespace 'DATA32M' nicht vorhanden

3 个答案:

答案 0 :(得分:5)

您可以使用所需的存储参数预先创建表,并将导入设置为忽略错误。

答案 1 :(得分:2)

与Karl一样,我推荐使用Datadump,但使用REMAP_TABLESPACE

答案 2 :(得分:0)

如果您使用的是数据泵转储,则可以尝试使用remap_schema选项来更正表空间。