|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
имеется таблица remote_stud, состоящая из 2х стобцов id_stud и foto_stud база данных студентов удаленная и была создана в firebird в ней содержатся id студента и его фото мне нудно эту таблицу сохранить на локальном сервере. проблема возникает в том, что oracle не понимает тип данных столбца фото. предполагаю, что это LONG нужно конвертировать в BLOB (ведь в этом формате хранятся картинки?) запрос типа Код: plsql 1. 2.
выполняется с ошибкой illegal use of LONG datatype В чем может быть проблема? как конвентировать из long d в blob& ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 16:51 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
WНаталья, select to_lob.. не работает потому, что to_lob это dml-функция книжку почитайте - и всё наладится и тут, на сайте примеры были ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 17:22 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
WНатальяпроблема возникает в том, что oracle не понимает тип данных столбца фото. предполагаю, что это LONG Человек предполагает, а у Firebird нет типа LONG, только BLOB. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 17:23 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, то есть получается, надо наоборот? из blob в long? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 17:47 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
WНатальято есть получается, надо наоборот? Получается, что кавалерийским наскоком не ничего получится, надо разбираться, моск морщить. Возможно, поставить под сомнение саму необходимость перекачки данных в Оракул, раз уж у вас нет специалистов по нему и использовать Firebird же в качестве локального сервера. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 17:57 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, спасибо, на одна из пунктов лаборототной работы состоит в том, чтобы взять удаленную таблицу и скопировать в локальную базу без ошибок. Никакой инфы больше по FireBird не давали, а по оралку в методичке только пару строк теории как выполнять селетк и инсерт. Не поделитесь с начинающим админом БД женского пола полезной ссылочкой конвертации типов или как пересохранить таблицу с картинками из FireBird в оракл. заранее благодарю, не судите строго за незнание вопроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2020, 19:10 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, нашла решение, но почему-то не работает даже этот запрос Код: plsql 1. 2. 3. 4.
ошибка dla_pkg.query_view invalid identifier "%S: invalid identifier '' ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 00:34 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
Тыкать пальцем в небо - отнюдь не самый удачный способ работы, с Ораклом в частности. Возможно, проблема в том, что само подключение через дблинк несколько некорректно произведено? Изобразите его тут.See Also:Oracle Database Administrator's Guide for information on specifying remote databases --- Если проблема действительно в странном преобразовании Firedird.BLOB -> Oracle.LONG, которое как-то происходит при подключении к удалённой БД, то обратное - процесс неочевидный, т.к. средств работы с LONG в Оракле почти нет, это почти вымерший тип данных. Вот хитрый выверт как пища для размышлений. Напрямую с картинкой вряд ли покатит, не влезет она в 4000. Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 01:24 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
Скорее всего проблема на уровне HS ODBC Все что не char и не number тупо обзывается LONG и как хотите, так и танцуйте Я бы попробовал зайти с другой стороны, вставить из FB в Oracle ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 09:38 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
Vadim Lejnin, обычный seleсt к удаленной БД выполняется. И на этом мой доступ к ей заказчивается. Ничего вставить туда или добавить я не могу, так как моей роли недостаточно грантов, а добить их не могут, чтобы ничего не поламала. я создала view c и в него скопировала результат запроса select desc показал, что поля "FOTO" - long raw ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 11:03 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
WНаталья, Тогда смотрите в сторону PL/SQL (Здесь у меня CLOB, но разницы нет) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54.
Рекомендую также очень полезную статью по теме: working with long columns ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 11:33 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
WНатальяdesc показал, что поля "FOTO" - long raw Значит так криво Оракул интерпретирует ODBC тип LONGVARBINARY. Надо либо найти настройку, которая это изменит, либо использовать другие способы импорта данных. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 13:30 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Сталкивался Ни hsodbc, ни hsmsql тупо все что длиннее 4000 байт превращают в long raw ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 13:43 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
Vadim LejninНи hsodbc, ни hsmsql тупо все что длиннее 4000 байт превращают в long raw Может, кому-нибудь стоит накатать SR, а то странно как-то использовать неподдерживаемый тип как умолчание... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2020, 15:08 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
Vadim Lejnin, Задачу частично решила с помощью piperow функции. Но возникла другая проблема. Картинки, которые больше 32000 режутся, так как в long ограничен этим размером. Если кому интересно, вот решение для маленьких картинок 1. Создаем 2 составных вспомогательных типа Код: plsql 1. 2. 3. 4. 5.
____ Код: plsql 1.
2. Создаем конвейерную функцию с преобразованием в BLOB Код: plsql 1. 2. 3. 4. 5. 6. 7.
3. Создаем процедуру для вставки записей, в которой прогоняем каждую строку через созданную ранее функцию Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
4. Вызываем ее и радуеся. Код: plsql 1.
... но до тех пор, пока картинка не превышает 32000 байт. Вопрос с преобразованием закрыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 14:10 |
|
Конвертация полей из LONG в BLOB
|
|||
---|---|---|---|
#18+
WНаталья Картинки, которые больше 32000 режутся, так как в long ограничен этим размером. а так понял оракля поле видит как long raw простой insert не работает insert into t2 select id,to_lob(l) from t;? SQL> desc t Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER(38) L LONG RAW SQL> desc t2 Name Null? Type ----------------------------------------- -------- ---------------------------- ID NUMBER(38) B BLOB ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
29.09.2020, 16:52 |
|
|
start [/forum/topic.php?fid=52&fpage=36&tid=1880850]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 162ms |
0 / 0 |