Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

заполнение CLOB поля в oracle 8 [D6]


Zabludshiy ©   (2004-08-03 13:22:00) 

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


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

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


Reindeer Moss Eater   (2004-08-03 15:25:00) [2]

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


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

Сори, запутался немного.
В 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:06:00) [4]

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


Reindeer Moss Eater   (2004-08-03 15:05:00) [5]

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

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


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

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


roottim   (2004-08-03 14:49:00) [7]

>В 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо