Clob. Dbms_lob.read не считывает 0d 0a символы

Yurai
Дата: 03.12.2007 16:31:34
Я помещаю текст в clob в процедуре.
Другая процедура считывает clob по одному символу до 0d0a. Так я определяю строку. Далее следующую.
Сегодня в PL/SQL Developer исправил один символ.
Теперь dbms_lob.read перескакивает символы 0d 0a, как будто их нет. Хотя в редакторе PL/SQL developer они видны.
Может кто знает в чем проблема?
_spy_
Дата: 03.12.2007 16:35:13
Код процедуры покажете? А также дамп содержимого clob (или необходимого его куска)
Yurai
Дата: 03.12.2007 16:38:58
declare
v_body clob;
st300 varchar2(300);
amt BINARY_INTEGER;
amt2 BINARY_INTEGER;
i number(5,0);
st1 varchar2(1);
num_str number(3,0);
begin
--delete from spr_doh where user_code=0;
select body into v_body from temp_clob where id=264;
amt:=dbms_lob.getlength(v_body);
i:=1; st300:=''; num_str:=0;
amt2:=1;
while i<=amt loop
dbms_lob.read(v_body,amt2,i,st1);
if st1=chr(13) then
num_str:=num_str+1;
--insert into spr_doh (str,user_code,num) values (st300,0,num_str);
st300:='';
elsif st1=chr(10) then
null;
else
st300:=st300||st1;
end if;
dbms_output.put_line('i='||i||', st300='||st300);
i:=i+1;
end loop;
end;
Yurai
Дата: 03.12.2007 16:41:44
Текст любой в несколько строк. В конце каждой строки 0d0a.
Yurai
Дата: 03.12.2007 16:43:11
Пока я не изменяю текст в PL/SQL Developer все нормально - 0d 0a видятся.
_spy_
Дата: 03.12.2007 17:06:10
Дамп clob'а все-таки приведите...
Если текст небольшой, то

select dump(to_char(<clob-поле>)) from <таблица>
Yurai
Дата: 03.12.2007 17:26:25
Я немного ошибся процедура 0a считывает, а 0d перестает

Дамп
Typ=1 Len=71: 200,228,212,224,233,235,58,55,56,51,49,48,48,48,50,49,48,42,42,55,56,51,53,48,49,48,48,49,50,48,48,55,49,50,48,51,48,48,48,48,48,52,10,210,232,239,200,237,244,58,209,206,206,193,217,193,192,205,202,192,10,210,229,235,206,242,239,240,58,10,10
Yurai
Дата: 03.12.2007 17:32:06
В PL/SQL Developere v Hex перед всеми 0a видны 0d, а dump не показывает их
Yurai
Дата: 03.12.2007 17:51:25
Как вариант, я в процедуре буду 0a считать концом строки, а 0d - игнорировать.
А не наоборот, как раньше.