powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / BYTE, BLOB, CLOB ...
12 сообщений из 12, страница 1 из 1
BYTE, BLOB, CLOB ...
    #35539993
klepa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Имею таблицу, поле типа BYTE которой хранится в BLOB пространстве.
По ряду причин хочу попробовать хранить это поле в обычном пространстве хранения и в SBS пространстве.
Смогу ли я выгрузить данные из таблицы, используя dbexport, и загрузить их с помощью dbload, изменив место хранения?
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35540174
АнатоЛой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35544043
klepa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имею таблицу:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
{ TABLE "informix".test row size =  64  number of columns =  3  index size =  0  }
create table "informix".test
  (
    id integer,
    num integer,
    bl byte
  )  extent size  64  next size  64  lock mode page;
В нее без проблем загружаю имеющиеся данные с помощью dbload

Создаю новую таблицу, в которой поле bl будет храниться в sbspace:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
{ TABLE "informix".test row size =  84  number of columns =  3  index size =  0  }
create table "informix".test
  (
    id integer,
    num integer,
    bl "informix".blob
  ) PUT bl in
  (
    sbspace
  )  extent size  64  next size  64  lock mode page;

При загрузке тех же данных получаю сообщение об ощибке:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
DBLOAD Load Utility           INFORMIX-SQL Version  11 . 10 .UC2
Copyright IBM Corporation  1996 ,  2006  All rights reserved
Software Serial Number AAA#B000000

In INSERT statement number  1  of raw data file test.unl.
Row number  1  is bad.
 25 | 1 |49492a0000000000000000000000000000000000000000000000000000000000000000000000000
 00000000000000000000000000000000000000000000000000000000000000000000000000000000000 
 00000000000000000000000000000000000000000000000000000000000000000000000000000000000 
 00000000000000000000000000000000000000000000000000000000000000000000000000000000000 
 000000000000000000000000000000000000000000000000000000000100 |

Operation now in progress

Segmentation fault
Наверное проблема в том, что поле bl в исходной таблице было типа BYTE, а данные которые могут храниться в Sbspace должны быть CLOB или BLOB.
Если делаю поле bl типа BYTE, то получаю сообщение об ошибке.
Подскажите плз, что я делаю не так?

onstat -d говорит следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dbspaces
address  number   flags      fchunk   nchunks  pgsize   flags    owner    name
7cb6e7f0  1         0x60001     1          1          2048      N  B     informix rootdbs
7cb6ece0  2         0x40001     2          1          16384     N  B     informix workdbs
7cb6ee40  3         0x40001     3          1          2048      N  B     informix logdbs
7cc48230  4         0x68001     4          1          2048      N SB     informix sbspace
  4  active,  2047  maximum
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35544274
Le111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрите при выгрузке каст bytetoblob
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35544512
klepa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрите при выгрузке каст bytetoblob
А можно немного подробнее, плз.
Гугл крайне скупо выдает информацию.
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35544643
Le111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
боюсь наврать (проверить негде), но попробуйте выгрузку/загрузку так сделать:
unload to 'test.txt' delimiter '|' select id, num, bytetoblob(bl) From test ;

load from 'test.txt' delimiter '|' Insert into test;
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35545012
klepa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Le111боюсь наврать (проверить негде), но попробуйте выгрузку/загрузку так сделать:
unload to 'test.txt' delimiter '|' select id, num, bytetoblob(bl) From test ;

При попытке использовать bytetoblob(bl) получаю ошибку
Код: plaintext
 9810 : Smart-large-object error.
Описание ошибки ясности не добавляет.
Что-то здесь не то, хотя очень похоже.
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35545764
Le111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вторая часть ошибки какая?
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35545848
klepa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Le111А вторая часть ошибки какая?

Это все, что выдает DBAccess.

Нарыл нечто под названием FILETOBLOB().
Буду курить дальше.
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35545912
klepa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В документе "IBM Informix Guide to SQL: Reference"
Есть такая строка:
A built-in cast converts BYTE values to BLOB values. For more information, see the IBM Informix Database Design and Implementation Guide.
Но в "IBM Informix Database Design and Implementation Guide" пока ничего не нашел на эту тему.
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35545933
Le111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот селект на сервере-источнике что выдает?:
select id, num, bytetoblob(bl) From test ;
...
Рейтинг: 0 / 0
BYTE, BLOB, CLOB ...
    #35545967
klepa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, заработало.
До этого не работало потому, что не было прописано SBSpace в onconfig-е.
Оно выгрузило что-то в бинарный файл. По размеру в два раза меньше, чем исходный текстовый. Буду копать дальше.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / BYTE, BLOB, CLOB ...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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