Чтение Длинного Типа данных и запись его в другой Длинный Тип данных - PullRequest
2 голосов
/ 26 февраля 2010

У меня есть маленький Пробелем:

Я пытаюсь, с SP, прочитать данные из таблицы SYSADM.aaTest и поместить их в MYSCHEMA.aaTest Теперь моя проблема в том, что в этой таблице есть тип Long.

desc aaTest
Name                           Null     Typ
------------------------------ -------- ----------------
ID_TEST                        NOT NULL NUMBER
RELEASE                                 NUMBER 
NAME                                    VARCHAR2(50)
XML_FILE                                LONG()   

хорошо для некоторых XML_File длиннее 32760 символов: /

моя процедура выглядит так:

create or replace
PROCEDURE  aaTest_Proc  
(  
p_persid IN person.persid%TYPE DEFAULT NULL  -- used for errormanagemant 
) 
IS 
v_errornum NUMBER   :=0; 
v_errormsg VARCHAR2(4000) :=NULL; 

BEGIN   

for rec in(
select id_patch , release, NAME , xml_file
FROM sysadm.aaTest  
)

loop


 INSERT INTO MYSCHEMA.aaTest
( id_patch , release , NAME , XML_File ) 
VALUES
( rec.id_patch , rec.release , rec.NAME , rec.xml_file );

End loop;

Exception
…

есть ли способ прочитать их полностью и записать обратно в другую таблицу? Кстати, эта версия работает с файлами ниже 32 КБ, но при большем количестве ошибок

btw2: я знаю, что CLOB будет лучше, но я не могу изменить столбец на CLOB, поэтому мне нужно остаться с Long: /

вот тебе помощь Ауро

1 Ответ

2 голосов
/ 26 февраля 2010

Вы не можете вставить LONG больше, чем 32 КБ с PL / SQL. Вы можете использовать команду COPY из SQL * Plus для перемещения LONGs .

Смотри также:

как выбрать и вставить столбец длинного типа

...