Мне нужно перенести базу данных на другую. У меня есть dblink, чтобы сделать это проще. Знаете, я пытаюсь скопировать комментарии и описание столбца из таблицы. Проблема в том, что тип - CLOB. В новой базе данных я использую VARCHAR2. Я использовал обходной путь и создал глобальную временную таблицу.
create global temporary table Comments
(id number,description clob, comment clob) ON COMMIT PRESERVE ROWS; -
insert into Comments Select id,description,comment from database.test@DBLINK;
Теперь у меня 52K строк в таблице.
Теперь я хочу создать новый тест таблицы в новой базе данных.
CREATE TABLE "TEST"
(
"ID" NUMBER(9,0) NOT NULL ENABLE,
"NAME" VARCHAR2(255) ,
"DESCRIPTION" VARCHAR2(4000) ,
"COMMENT" VARCHAR2(4000) ,
CONSTRAINT "TEST_PK" PRIMARY KEY ("ID")
);
И теперь я пытаюсь вставить значения:
insert into TEST(ID, NAME,DESCRIPTION, COMMENT)
select Test_seq.nextval,Name,
(select dbms_lob.substr(DESCRIPTION, 4000, 1) from Comments b where b.id =a.id),
(select dbms_lob.substr(COMMENT, 4000, 1) from Comments b where b.id =a.id),
from database.test@DBLINK a;
Проблема в том, что для вставки значений требуется слишком много времени. Я начал, и через 30 минут он не закончился.
Есть ли быстрый способ преобразовать clobs в varchar2 и вставить их в таблицу в другой базе данных Oracle?
Спасибо за помощь!