powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Convert clob
11 сообщений из 11, страница 1 из 1
Convert clob
    #39471305
Cheese)))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select
  2    length('привет!!!') as chars,
  3    length(convert('привет!!!','UTF8')) as chars_utf8,
  4    dbms_lob.getlength(convert(to_clob('привет!!!'),'UTF8'))  as clob_utf8
  5  from dual

CHARS           CHARS_UTF8      CLOB_UTF8       
--------------- --------------- --------------- 
9               15              18              



Может кто подскажет, почему clob_utf8 не соответствует chars_utf8 и что сделать чтобы соответствовало?
...
Рейтинг: 0 / 0
Convert clob
    #39471318
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select
dbms_lob.getlength(convert(to_clob('привет!!!'),'UTF8'))  as clob_utf8_1,
dbms_lob.getlength(to_clob(convert('привет!!!','UTF8')))  as clob_utf8_2
from dual;

CLOB_UTF8_1 CLOB_UTF8_2
----------- -----------
         18          15

Затрач.время: 00:00:00.03
...
Рейтинг: 0 / 0
Convert clob
    #39471323
Cheese)))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том что у меня уже есть clob, и конвертировать его в char целиком не получится, а частями хотелось бы избежать.
...
Рейтинг: 0 / 0
Convert clob
    #39471325
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цель у тебя какая?
...
Рейтинг: 0 / 0
Convert clob
    #39471329
Cheese)))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получить честную длину строки clob в UTF8 как для chars_utf8 чтобы записать длину в utl_http content-length, с chunked не работает.
...
Рейтинг: 0 / 0
Convert clob
    #39471330
dba123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheese))),

Восклицательные знаки убрать, меньше эмоций - меньше ошибок.
...
Рейтинг: 0 / 0
Convert clob
    #39471341
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheese)))Получить честную длину строки clob в UTF8 как для chars_utf8 чтобы записать длину в utl_http content-length, с chunked не работает.Длина строки в символах от кодировки не зависит. Если нужен вес в байтах, при условии, что кодировка базы отличается от UTF8, сконвертируй исходный clob в blob c помощью CONVERTTOBLOB с указанием blob_csid = nls_charset_id('UTF8') и взвесь его (blob).
...
Рейтинг: 0 / 0
Convert clob
    #39471359
Cheese)))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,
Что же выбрать: чтение частями в строку и вычисление длины частями или CONVERTTOBLOB?!
Оба варианта какие-то не симпатичные :(
...
Рейтинг: 0 / 0
Convert clob
    #39471363
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheese)))Что же выбрать: чтение частями в строку и вычисление длины частями или CONVERTTOBLOB?!Ну конечно циклическое чтение в строку и ее конвертацию с суммированием полученных байт. Что мы, лохи что-ли, использовать целую одну процедуру из pl/sql пакета, которая инкапсулирует от нас всю эту логику?
...
Рейтинг: 0 / 0
Convert clob
    #39471366
Cheese)))
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmKad,

Про создание темпового blob'а забыл.
...
Рейтинг: 0 / 0
Convert clob
    #39471373
Фотография AmKad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheese)))Про создание темпового blob'а забыл.Точно. Вот где собака зарыта. Циклическое преобразование. Однозначно.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Convert clob
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]