3

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

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

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

错误消息 ORACLE 959 如下所示:

IMP-00017:Nachfolgende Anweisung War wegen Oracle-Fehler 959 erfolglos:
 "创建表 "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" 日期, "STATE" NUMBER(3, 0) NOT NULL ENABLE, "DATA_OLD" LONG RAW,
 " "供应商" 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 存储(初始 65536 FREELISTS 1”
 " FREELIST GROUPS 1 BUFFER_POOL DEFAULT) 表空间 "DATA32M" 记录 NOCOMP"
 "RESS LOB ("DATA_ARCHIVE") STORE AS (TABLESPACE "DATA32M" ENABLE STORAGE IN"
 “ 行块 8192 PCTVERSION 10 NOCACHE 日志存储(初始 65536 FREELI”
 "STS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)) LOB ("DATA") 存储为 (TABLE"
 “空间“DATA32M”在行块 8192 PCTVERSION 10 NOCACHE LOGG 中启用存储”
 “ING STORAGE(初始 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAUL”
 “T))”
IMP-00003:ORACLE-Fehler 959 aufgetreten
ORA-00959: 表空间 'DATA32M' 不存在
4

3 回答 3

5

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

于 2009-12-17T10:03:07.227 回答
2

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

于 2009-12-17T11:45:50.967 回答
0

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

于 2009-12-17T10:06:12.650 回答