Я пытаюсь сохранить данные больших двоичных объектов из базы данных SQLite (кэш Safari: Cache.db) в файл, но по какой-то причине sqlite не может прочитать весь большой двоичный объект. В конце концов я хотел бы сделать это в ruby, но сейчас то, что работает непосредственно в командной строке sqlite, хорошо. Кроме того, я прочитал все записи, которые говорят об этом здесь, на stackoverflow, но большинство из них только обсуждают производительность сохранения изображений в BLOB-объектах, и одна запись, которая показывает, чтобы сохранять BLOB-объекты в файл, находится в C #, что не помогает мне. Вот что я попробовал:
sqlite> select * from cfurl_cache_response limit 1;
3501 | 0 | 945281827 | 0 | http://www.gospelz.com/components/com_jomcomment/smilies/guest.gif|2010-02-24 16: 20: 07
sqlite> выбрать данные приемника из cfurl_cache_blob_data, где entry_ID = 3501;
GIF89a (
Шестнадцатеричная запись исходного файла (guest.gif) показывает, что sqlite прекращает чтение большого двоичного объекта после первого нулевого значения:
$ hexdump -C guest.gif
00000000 47 49 46 38 39 61 28 00 28 00 f7 00 00 f1 f5 fd | GIF89a (. (....... |
sqlite> .output test.gif
sqlite> выберите получатель_данных из cfurl_cache_blob_data, где entry_ID = 3501;
$ hexdump -C test.gif
00000000 47 49 46 38 39 61 28 0a | GIF89a (. |