powered by simpleCommunicator - 2.0.43     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос по CLOB и DBMS_LOB.SUBSTR
11 сообщений из 11, страница 1 из 1
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35922394
DmitryRasskazov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток коллеги.

Два вопроса по CLOB.
Есть нуклеотидная последовательность вида:
Код: plaintext
1.
AATTTTTGCCCCTTTAACCCC......
Длиной до нескольких миллионов символов. Хранится она в виде CLOB. Пользователь выбирает определенные участки этой последовательности (т.е. вырезает некоторые подпоследовательности ) .

Первая проблема в том что функция DBMS_LOB.SUBSTR() возвращает VARCHAR2 -> т.е. возвращаемый результат ограничен 4К символов.
Вторая проблема в том что зачастую эти подпоследовательности нужно "разворачивать" (т.е. делать REVERSE) -> т.е. тоже сталкиваемся с ограничением типа VARCHAR2

Можно ли как-то обойти эти ограничения? Сейчас приходится считывать кусками по 4000 символов.. Как-то это неудобно..
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35922403
Lecter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryRasskazov,

Боюсь придется мирится с такими ограничениями.
Вообще я б в таком случаи юзал массив( блин привычки вторая натура ), то есть CREATE TYPE bla-bla AS TABLE OF VARCHAR2(4000)...
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35922512
AlexVer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторсчитывать кусками по 4000 символов
В pl/sql максимальная длина varchar2 = 32767

С уважением,
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35922704
DmitryRasskazov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LecterDmitryRasskazov,
.....
Вообще я б в таком случаи юзал массив( блин привычки вторая натура ), то есть CREATE TYPE bla-bla AS TABLE OF VARCHAR2(4000)...
С такой структурой данных гораздо неудобнее работать. К тому-же т.к. нуклеотидных последовательностей (геномов) может быть много (много видов организмов, у каждого вида свой набор хромосом, каждая хромосома содержит нуклеотидную последовательность большой длины) в результате получаем большую просадку по производительности при обращении к таким таблицам.

AlexVer
Да, точно, 32767. Просто я не работаю напрямую с PL/SQL VARCHAR2 типом.
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35922810
Двоюшник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryRasskazov,

еще можно посмотреть в сторону DBMS_LOB.COPY
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35924175
Evgeny_Z
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В 10-ке для работы с LOB-ами можно использовать стандартные функции SQL.

substr(ваш_clob,1,40000) вернет CLOB с заданным кол-вом символов
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35924800
Evgeny_Z,

что то не припоминаю что бы субстр c обьемом выше 32...
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35924807
DmitryRasskazov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мимоходил, увидел

На самом деле работает. спасибо Evgeny_Z за подсказку.

Осталась только проблема с "разворотом " строки размером больше 4000 символов, приходится разворачивать частями.
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35924857
DmitryRasskazov,

я имел ввиду выше 32 кб
а работает оно по тому что трансформирует в варчар
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35924899
DmitryRasskazov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мимоходил, увидел,
не понимаю что Вы имеете в виду..
запрашиваю
Код: plaintext
SELECT  LENGTH(SUBSTR(CHROM_SEQUENCE, 63556667 , 50000 ))  FROM CHROMOSOME_SRC  

возвращает:

Код: plaintext
 50000 
...
Рейтинг: 0 / 0
Вопрос по CLOB и DBMS_LOB.SUBSTR
    #35924970
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmitryRasskazov,

вам для счастья всего-то и осталось сделать за пару минут плскл функцию, а-ля
Код: plaintext
clob_reverse (p in clob) return clob
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вопрос по CLOB и DBMS_LOB.SUBSTR
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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