Я где-то прочитал, что в BLOB файлы хранятся просто в hex. Соответственно, я преобразовал нужный мне файл в hex, попытался вставить в BLOB и получил ошибку:
file = open(f'/Users/vladimirkorsunov/Downloads/bot_pdf/{pdf_file_id}.pdf', 'rb')
bin_file = file.read()
hex_file = binascii.hexlify(bin_file)
conn = sqlite3.connect("orders_list.db")
c = conn.cursor()
c.execute(f"INSERT INTO orders (student_id, subject, pdf_file, exercises, price) VALUES ({student_id}, '{subject}', {hex_file}, '{exercises}', {price})")
conn.commit()
Я видел, что кто-то использует hexdump, но я не понял, что там к чему. Вот один из примеров:
(printf "INSERT INTO test(id, name, blob_field) VALUES(NULL, 'Bob', 0x" ; \
hexdump -v -e '/1 "%02x"' 001.png ; printf ");" ) | sqlite3 my.db
Как я понял из документации, -е задает формат строки, но почему он такой, какой он в примере? Что это вообще значит? В любом случае, на python я примеров вообще не нашел, так что даже попробовать это использовать не могу,