Как загрузить файл изображения в базу данных oracle, используя Python Flask - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь обновить строку в своей базе данных oracle с помощью файла изображения (в столбец blob) и имени файла (столбец varchar2).

Ниже мой код, если я поставлю f.filename в скобках f.read(), тогда я получаю ошибку « ожидает целое число в качестве параметра », и если я ничего не помещаю туда, я получаю « cx_ Oracle .DatabaseError: ORA-01036 : недопустимое имя / номер переменной"в строке cur.execute.

Как мне изменить приведенный ниже код, обновить строку моим файлом изображения? Спасибо. Я новичок в python и пытаюсь учиться самостоятельно.

    v_sql = "update login_table set image_file= %s and binary_file = %s where email_address= %s"            
    v_binary_file = f.read() 
    v_current_user = 'abcd@abcd.com'
    v_args = (f.filename, v_binary_file, v_current_user)
    cur.execute(v_sql, v_args)
    cur.commit

1 Ответ

0 голосов
/ 05 августа 2020

Oracle синтаксис переменной связывания использует двоеточие (':'), а не процентное ('%') префикс для заполнителей операторов.

cx_ Oracle ручная документация LOB имеет четкие примеры LOB:

with open('example.txt', 'r') as f:
    textdata = f.read()

with open('image.png', 'rb') as f:
    imgdata = f.read()

cursor.execute("""
        insert into lob_tbl (id, c, b)
        values (:lobid, :clobdata, :blobdata)""",
        lobid=10, clobdata=textdata, blobdata=imgdata)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...