Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将Oracle(C)LOB导入另一个表空间_Oracle_Import_Clob_Tablespace - Fatal编程技术网

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

如何将Oracle(C)LOB导入另一个表空间,oracle,import,clob,tablespace,Oracle,Import,Clob,Tablespace,我正在将一个数据库转储从一个Oracle 10g安装导入另一个安装。源有一个包含多个表空间的布局。目标为我要导入转储的用户提供一个默认表空间 对于普通桌子来说,一切都很好。这些表将从其原始表空间重新定位到用户的默认表空间。我面临的问题是,有几个表包含带有显式存储指令的CLOB。也就是说,它们将存储表空间命名为。imp命令似乎无法将这些CLOB重新定位到用户的默认表空间 imp命令是否有任何隐藏的命令行选项来将CLOB存储重新定位到用户的默认表空间,甚至是一个命名的表空间 错误消息ORACLE 9

我正在将一个数据库转储从一个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 IMP-00017:Nachfolgende Anweisung war wegen Oracle Fehler 959 Erfolgos: 创建表“如果数据输出”(“OID”编号(10,0)不为空启用“CLIEN” “T_OID”编号(10,0)非空启用,“T_创建”时间戳(6)非空EN 可启用,“TS_更新”时间戳(6)非空启用,“OP_创建”VARCHAR2(30)N OT NULL ENABLE,“OP_UPDATE”VARCHAR2(30)NOT NULL ENABLE,“标识符”VARC HAR2(50),“TRANSFERTYPE”VARCHAR2(20)非空启用,“STORE”编号(10,0) “数据”日期,“状态”编号(3,0)不为空启用,“数据旧”长原始 “供应商”编号(10,0),“买方”编号(10,0),“货物出港ID”VARCHAR2(“ “4000),“自定义字段”VARCHAR2(50),“数据存档”BLOB,“数据”BLOB)PCTF” “REE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255存储(初始65536 FREELISTS 1” “自由列表组1缓冲区\u池默认值)表空间“DATA32M”日志记录NOCOMP” “RESS LOB(“数据_存档”)存储为(表空间“DATA32M”启用中的存储” “行块8192 PCTVERSION 10 NOCACHE日志存储(初始65536 FREELI)” “STS 1自由列表组1缓冲池(默认))LOB(“数据”)存储为(表” “SPACE”DATA32M“启用行块8192 PCTVERSION 10 NOCACHE LOGG中的存储” “正在初始化存储(初始65536自由列表1自由列表组1缓冲池数据” "T)" IMP-00003:ORACLE Fehler 959 aufgetreten ORA-00959:表空间'DATA32M'nicht vorhanden
您可以使用所需的存储参数预先创建表,并将导入设置为忽略错误。

如果您使用的是数据泵转储,您可以尝试使用重新映射模式选项来更正表空间。

与Karl一样,我建议使用Datadump,但多年来我喜欢分享我在这方面的经验。正如下面的答案所建议的那样,使用数据泵而不仅仅是转储和导入要优于我问题中的方法。Gary建议的解决方案与Datapump配合使用效果良好。