Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.29;
Скачать: 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 вся ветка

Текущий архив: 2004.08.29;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
3-1091591198
mixam
2004-08-04 07:46
2004.08.29
bde


14-1091902628
Maxim
2004-08-07 22:17
2004.08.29
Дополнения


3-1091708708
natasha
2004-08-05 16:25
2004.08.29
Unicode в Delphi


3-1091474894
Dimedrol
2004-08-02 23:28
2004.08.29
Delphi -> ADO -> MSSQL


1-1092302440
BillyJeans
2004-08-12 13:20
2004.08.29
WordWrap для TListView в режиме vsReport это возможно?