|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Подскажите, плиз, запуталась окончательно. Нужно перекинуть данные LONG RAW(картинки) на удаленном сервере, более 32 КБайт, в поле BLOB другой БД. Распределенный запрос использовать не могу, ограничения LONG. На удаленном сервере делать ничего не могу, в т.ч. экспорт - ограничения доступа. Как быть? Изменить тип данных в исходной таблице соответственно тоже не могу. Как быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 15:47 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
В догонку. На форуме нашла прогу /topic/119831&hl=long+blob+clob procedure Long2Lob( -- Uses DBMS_SQL to select a LONG column identified by p_LongQuery, and returns it in p_CLob. p_LongQuery in varchar2, p_CLob in out clob) работает с ДЛИННЫМИ СТРОКАМИ, читает строку по кусочкам через dbms_sql.column_value_long и записывает кусочки в CLOB. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 15:56 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
STFF memo -> LOB or VARCHAR ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 15:57 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
В догонку. На форуме нашла прогу /topic/119831&hl=long+blob+clob procedure Long2Lob( -- Uses DBMS_SQL to select a LONG column identified by p_LongQuery, and returns it in p_CLob. p_LongQuery in varchar2, p_CLob in out clob) работает через курсор, с ДЛИННЫМИ СТРОКАМИ, читает строку по кусочкам через dbms_sql.column_value_long и записывает кусочки в CLOB. Для моего случая не подходит, column_value_long ругается на тип данных. Можно ли читать как-то кусочками тип LONG RAW? Пробовала использовать dbms_sql.column_value_raw, при этом описала переменную LONG RAW, в которую читала данные целиком, но картинка более 32000 не влазит. Что еще попробовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 16:02 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
fox_studentПодскажите, плиз, запуталась окончательно. Нужно перекинуть данные LONG RAW(картинки) на удаленном сервере, более 32 КБайт, в поле BLOB другой БД. Распределенный запрос использовать не могу, ограничения LONG. На удаленном сервере делать ничего не могу, в т.ч. экспорт - ограничения доступа. Как быть? Изменить тип данных в исходной таблице соответственно тоже не могу. Как быть? С голимым лонгрвом надо завязывать. Как вариант - грубо требуйте от тех, кто живет за дблинком, создать аналогичный, по содержанию, лоб. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 16:10 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Elic, спасибо, оперативно. Можно поподробней, что такое CTAS + to_lob? Оба сервера Oracle 8.1.7... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 16:14 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Попробовала через команду Copy(sqlplus). Ограничение на данные long - 80. Итого в новосозданной таблице в поле LONG RAW вместо 9142Б всего 39Б. Можно ли увеличить длину копируемых данных? В источнике картинки до 500МБайт попадаются... точно надо ГРУБО ТРЕБОВАТЬ... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 16:41 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
fox_studentПопробовала через команду Copy(sqlplus). Ограничение на данные long - 80.RTFM SQL*Plus COPY Command (FAQ) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 16:52 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Спасибо, вижу что можно переменную LONG увеличить до 2 Гигабайтов. На что это может еще повлиять (сервер-то рабочий)? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 17:17 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Караул! Увеличила размер переменной LONG до 10000, теперь sqlplus тип LONG RAW почему-то заменяет на LONG. SQL> copy from ... to ... create t_foto (id, foto) using (select id, foto from t_foto where id = 1); Array fetch/bind size is 15. (arraysize is 15) Will commit when done. (copycommit is 0) Maximum long size is 10000. (long is 10000) ERROR: ORA-01461: can bind a LONG value only for insert into a LONG column ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 17:44 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Вывод: через сopy тоже не идет. Да если б и получилось, то что дальше делать? to_lob/to_blob 8.1.7 не понимает. Опять же по кусочкам тип LONG RAW читать не получается. что такое CTAS + to_lob? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 18:04 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
fox_studentВывод: через сopy тоже не идет. Да если б и получилось, то что дальше делать? to_lob/to_blob 8.1.7 не понимает. Опять же по кусочкам тип LONG RAW читать не получается. что такое CTAS + to_lob? все оно понимает....вы просто в доку не мсмотрите ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 18:18 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
и тут еще чуток есть ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 18:33 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Спасибо-спасибо! Перекинуть из LONG RAW в BLOB в пределах одной базы, через to_lob получилось, в т.ч. данные > 32K. Как бы теперь все данные LONG RAW забрать на локальную базу, через copy? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 18:43 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
fox_studentНа удаленном сервере делать ничего не могу, в т.ч. экспорт - ограничения доступа. Как быть?Кстати, какие проблемы запустить экспорт "местно"? Это практически то же, что и copy, только лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 18:51 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Здесь все просто... EXP-00009: no privilege to export REMOTE_SERV's table T_FOTO ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 19:00 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Всем спасибо, на сегодня у меня все. Завтра еще посмотрю set long... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 19:06 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
так не получается ?? Код: plaintext
причем sourc_table (x long raw) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 19:07 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
pravednik вeрнее Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2007, 19:09 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Делаю copy from ... to ... create t_foto (id, foto) using (select id, foto from t_foto where id = 1) При стандартном значении параметра LONG = 80 копирует, но урезает данные. А при увеличении LONG = 100000 ругается на тип переменной: Array fetch/bind size is 15. (arraysize is 15) Will commit when done. (copycommit is 0) Maximum long size is 100000. (long is 100000) ERROR: ORA-01461: can bind a LONG value only for insert into a LONG column Исходная таблица t_foto имеет тип данных LONG RAW, при вставке с парам. LONG=80 в результирующей таблице тоже тип LONG RAW... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2007, 10:19 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Кто-нить подскажет, как побороть ORA-01461: can bind a LONG value only for insert into a LONG column при копировании базы через sqlplus / copy? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2007, 10:58 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Хоть вопрос годичной давности, но присоединюсь к нему. Аналогичная ситуация: нужно вытащить в свою таблицу из удаленной базы поле LONG RAW. Пробую командой COPY. Та же ошибка ORA-01461: can bind a LONG value only for insert into a LONG column Удаленная база, что прячется за дб_линком - MSSQL через Transparent Gateway Поэтому: 1. TO_LOB не работает, потому что используется дб_линк 2. Попросить "владельца" исходной базы изменить тип поля - не получится, это прозрачный шлюз видит MSSQL-ный тип image как LONG RAW. Кстати, текстовый LONG через команду COPY я уже победил :) А вот с двоичным полем пока бока. Причем какую-то часть записей перед выводом ошибки оно-таки копирует. А именно те записи, длина которых измеряется сотнями-тысячами байт. А вот с пятизначными размерами (реальные данные в MSSQL-ной базе - длина полей в диапазоне от 19456 до 50176 байт) не хочет :( ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 10:32 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Вдогонку: Если задать set long 4000 или меньше - все хорошо без ошибок, если не считать за недостаток обрезанные значения полей. :( Есла же задать set long 4001 или больше - выскакивает вышеупомянутая ошибка ORA-01461 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2008, 10:46 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
У меня похожая задача. В PL/SQL-ной процедуре мне надо прочесть и по кусочкам обработать колонку типа LONG RAW. Длина там больше 32К. Как это можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2008, 23:17 |
|
Опять LONG RAW -> BLOB
|
|||
---|---|---|---|
#18+
Sergey Molchanov Хоть вопрос годичной давности, но присоединюсь к нему. Аналогичная ситуация: нужно вытащить в свою таблицу из удаленной базы поле LONG RAW. Пробую командой COPY. Та же ошибка ORA-01461: can bind a LONG value only for insert into a LONG column Удаленная база, что прячется за дб_линком - MSSQL через Transparent Gateway Поэтому: 1. TO_LOB не работает, потому что используется дб_линк 2. Попросить "владельца" исходной базы изменить тип поля - не получится, это прозрачный шлюз видит MSSQL-ный тип image как LONG RAW. Кстати, текстовый LONG через команду COPY я уже победил :) А вот с двоичным полем пока бока. Причем какую-то часть записей перед выводом ошибки оно-таки копирует. А именно те записи, длина которых измеряется сотнями-тысячами байт. А вот с пятизначными размерами (реальные данные в MSSQL-ной базе - длина полей в диапазоне от 19456 до 50176 байт) не хочет :( В Oracle 19c все так же - через dblink из MSSQL через нативный gateway поле видно как LONG RAW. вопрос к знатокам - зачем так делать? Неужели нельзя сразу сделать нормальный BLOB ? Со строками длиной меньше 32к проблем нет, а вот больше - средствами pl/sql никак не вытягиваются. Причем, если смотреть строку из PL/SQL Developer - данные видны с длиной больше 32к. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2021, 18:31 |
|
|
start [/forum/topic.php?fid=52&fpage=27&tid=1880523]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
others: | 269ms |
total: | 421ms |
0 / 0 |