2009-12-17 40 views
3

我正在將一個Oracle 10g安裝的數據庫轉儲導入另一個表空間。該源具有包含多個表空間的佈局。目標有一個默認的表空間給我要導入轉儲的用戶。如何將Oracle(C)LOB導入到另一個表空間

一切工作正常,普通表。這些表從原始表空間重新定位到用戶的默認值。我面臨的問題是,幾個表包含帶有明確存儲指令的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 
+0

畢竟那些年我喜歡分享我的經驗。正如在下面的答案中所建議的那樣,使用datapump而不是僅僅傾銷和導入,優於我的問題中的方法。由Gary建議的解決方案可以很好地處理Datapump。 – Kriegel 2017-11-22 18:42:08

回答

5

你可以預先創建使用你所需要的存儲參數表,並設置進口忽略錯誤。

0

如果您正在使用數據泵轉儲,則可以嘗試remap_schema選項來更正表空間。

相關問題