Как импортировать Oracle (C) LOB в другое табличное пространство - PullRequest
3 голосов
/ 17 декабря 2009

Я импортирую дамп базы данных из одной установки 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 ]

5 голосов
/ 17 декабря 2009

Вы можете предварительно создать таблицу, используя необходимые параметры хранения, и настроить импорт таким образом, чтобы игнорировать ошибки.

2 голосов
/ 17 декабря 2009

Как и Карл, я рекомендую Datadump, но используйте REMAP_TABLESPACE

0 голосов
/ 17 декабря 2009

Если вы используете Data Pump Dump, вы можете попробовать параметр remap_schema, чтобы исправить табличное пространство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...