Вниз
Скачать: CL | DM;

заполнение CLOB поля в oracle 8   Найти похожие ветки 

 
Zabludshiy   (2004-08-03 13:22) [0]

Всем доброго времени!
Помогите разобраться. Надо записать в CLOB текст > 100KB. В oracle 9 использовал TO_CLOB(), и писал в CLOB-поле переменную типа varchar2. В восьмерке так не получается. Пробую разобраться с DBMS_LOB. Нормально описано как скопировать один LOB в другой, а вот как длинный текст туда загнать понять не могу.
Спасибо.


 
roottim ©   (2004-08-03 14:49) [1]

>В oracle 9 использовал TO_CLOB(), и писал в CLOB-поле переменную типа varchar2

не понял в чем конкретно проблема

SQL> CREATE TABLE ttt (id INT, NAME clob)
 2  /

Таблица создана.

SQL>
SQL> DECLARE
 2    vs VARCHAR2(4000) := "";
 3  BEGIN
 4    FOR i IN 1..2000 LOOP vs := vs||"WW"; END LOOP;
 5    INSERT INTO ttt VALUES(7, vs);
 6    COMMIT;
 7  END;
 8  /

Процедура PL/SQL успешно завершена.

SQL>
SQL> SELECT * FROM ttt
 2  /

       ID
----------
NAME
--------------------------------------------------------------------------------
        7
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW


 
Zabludshiy   (2004-08-03 15:02) [2]

Проблема в том, что мне нужно внести текст размером больше чем максимальный размер varchar2. В oracle 9 varchar2 имеет макс. размер 2Гб, тогда как в oracle 8 - 4000.


 
Reindeer Moss Eater ©   (2004-08-03 15:05) [3]

varchar2 имеет один и тот же размер и в восьмерке и в девятке.

Если это поле таблицы, то 4000
Если это переменная PL/SQL блока, то это 32767.


 
Reindeer Moss Eater ©   (2004-08-03 15:06) [4]

И попутный вопрос:
зачем использовать varchar2 если работать надо с clob?


 
Zabludshiy   (2004-08-03 15:22) [5]

Сори, запутался немного.
В 9-ке біло так:
declare var1 clob;
begin
var1:="Тут большоой текст (размером промерно 200 КБ)

";

Insert into table (id, Clob_field, ) Values (
84, TO_CLOB(var1));  
end;


В восьмёрке начала ругаться на TO_CLOB, мол нет такого у него, а потом на размер литерала присваемого var1, если он был больше 4000 (или 32767, точно не помню).


 
Reindeer Moss Eater ©   (2004-08-03 15:25) [6]

А зачем TO_CLOB?
Если есть dbms_lob.write, writeappend ?


 
Zabludshiy   (2004-08-03 17:47) [7]

Всем спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
3-1091693072
Виктор
2004-08-05 12:04
2004.08.29
ХП


3-1091604868
Alexander1966
2004-08-04 11:34
2004.08.29
Проблемма с TADOQuery


14-1092299325
Странник
2004-08-12 12:28
2004.08.29
Туркменбаши приказал построить рядом с Ашхабадом дворец из льда


14-1091893299
Knight
2004-08-07 19:41
2004.08.29
Создания образов и восстановления HDD...


4-1090241608
Григорьев Антон
2004-07-19 16:53
2004.08.29
Изменение порядка сообщений в очереди




   Наверх