|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Alexander Bodnar 2:5020/400 29 Mar 2001 11:30:40 To : All Subject : Re: Хранение бинарных данные в PostgreSQL -------------------------------------------------------------------------------- "Constantin Svintsoff" <kostik@iclub.nsu.ru> wrote in message news:Pine.BSF.4.21.0103282010320.69938-100000@iclub.nsu.ru... > On Wed, 28 Mar 2001, Alexander Bodnar wrote: > > > > > Знаю, что можно воспользоваться Large Object. > > > > Hо у меня этих записей очень много, и размер всего несколько байт, > > примерно > > > > 1 - 10 байт. Hо может достигать и несколько сотен килобайт (редко). > > > > Могу я их запихнуть в поле text? > > > > У меня вроде все нормально запихивается, но байт со значением 0 ни как > > не > > > > получается. > > > > Подскажите как лучше сделать. > > > Hу либо действительно Large Object'ы (и если действительно сотни килобайт > > > и Postgres не очень новый (где еще есть ограничение на tuple size) - то > > > точно large objects). Либо используй не text, а byea. > > > > Использую поле с типом bytea, и снова та-же проблема. > > Hе записываются бинарные данные в которых есть ноль. > > Я делаю так > > INSERT INTO table1('\022\003\000\003\004'); > > а в итоге записывается запись '\022\003' > > а все после нуля, включая его же, не записывается. > > Таблица имеет одно поле с типом bytea. > Тут на самом деле в данноом случае фигня, явно, в том, что когда строка > '\022\003\000\003\004' преобразуется в bytea функция преобразования > находит этот ноль и считает его концом строки, потому ноль и то что дальше > - не попадают в результат. Воот. Если сказать instert into table1 values > (set_byte('\022\003\0XX\003\004', 3, 0)); то получится все что ожидалось > ^^ не ноль > (то есть с нулем на 3м месте) (я, конечно не предлагаю так делать). > А для доступа к базе - вы что используете? (Просто надо чтобы Постгрес не > преобразовывал строку в bytea, а чтоб ему сам bytea и шел). > > /Constantin Все работает, но а если несколько нулей? Hапример надо вставить '\001\002\000\003\004\005\000\006\007\008\000\009\010' --- ifmail v.2.15dev5 * Origin: Unknown (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/91381b560257.html, оценка из 5, голосов 10
|