powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Чтение данных из BLOB
8 сообщений из 8, страница 1 из 1
Чтение данных из BLOB
    #40092892
Sasha5213
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Подскажите, пожалуйста, как можно прочитать данные из BLOB, если его размер превышает 130 000 символов?
Сейчас получаю ошибку ORA-06502: PL/SQL: : длина raw-переменной слишком большая ошибка числа или значения

Код: plsql
1.
select CONVERT(utl_raw.cast_to_varchar2(dbms_lob.substr(tab.column)), 'UTF8', 'CL8MSWIN1251') from tab where id = n;
...
Рейтинг: 0 / 0
Чтение данных из BLOB
    #40092902
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае правильным будет не использовать RAW и CONVERT. Озвучьте
реальную задачу, а не проблему с кривым костылём.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чтение данных из BLOB
    #40092908
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sasha5213
как можно прочитать данные из BLOB, если его размер превышает 130 000 символов?

По разному. Зависит от задачи.
...
Рейтинг: 0 / 0
Чтение данных из BLOB
    #40092912
Sasha5213
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
В реальности мне нужно из этого BLOB вывести некоторые данные. Но для начала у меня никак не получается полностью прочитать этот BLOB. Максимально выходит лишь 2000 байтов. Сам же BLOB размером больше 130 000.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select xmltable.*  
from tab, 
xmltable(	'//File/Document/Prib/Nal/NalPU/Date' 
		passing CONVERT(utl_raw.cast_to_varchar2(dbms_lob.substr(tab.column, 2000)), 'UTF8', 'CL8MSWIN1251')
		columns param1 varchar(200) path '@param1', 
			     param2 varchar(200) path '@param2 ', 
			     param3 varchar(200) path '../@param3 ', 
			     param4 varchar(200) path '../@param4 ', 
			     param5 varchar(200) path '../@param5', 
			     ord FOR ORDINALITY),
                CONVERT(utl_raw.cast_to_varchar2(dbms_lob.substr(tab.column, 2000)), 'UTF8', 'CL8MSWIN1251') 



По сути, вот что-то такое должно получиться, но оно не работает. Есть предположение, что не работает из-за размера BLOB.
Такое пишу в первый раз, так что пытаюсь разобраться.
...
Рейтинг: 0 / 0
Чтение данных из BLOB
    #40092915
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Чтение данных из BLOB
    #40092917
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sasha5213В реальности мне нужно из этого BLOB вывести некоторые данные.

Во-первых, для этого его не нужно читать полностью.
Во-вторых, PL/SQL технически некуда "выводить", соответственно задачу следует
решать средствами "выводящей" стороны.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чтение данных из BLOB
    #40092921
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Sasha5213
Есть предположение, что не работает из-за размера BLOB.
[/quot]
Есть предположение, что tab.column должен быть XMLType, а не BLOB. И полная
уверенность, что кое-кому надо прочитать
https://docs.oracle.com/cd/E11882_01/appdev.112/e40758/t_xml.htm#ARPLS71992
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Чтение данных из BLOB
    #40092932
Sasha5213
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
спасибо за помощь, всё получилось!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Чтение данных из BLOB
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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