Я пытаюсь обновить запись в таблице, используя Python cx_oracle. Столбец называется «шаблон» и имеет тип данных CLOB.
Это мой код:
dsn = cx_Oracle.makedsn(hostname, port, sid)
orcl = cx_Oracle.connect(username + '/' + password + '@' + dsn)
curs = orcl.cursor()
sql = "update mytable set template='" + template + "' where id='6';"
curs.execute(sql)
orcl.close()
Когда я делаю это, я получаю сообщение о том, что строковый литерал слишком длинный. Переменная шаблона содержит около 26000 символов. Как мне это решить?
Edit:
Я нашел это: http://osdir.com/ml/python.db.cx-oracle/2005-04/msg00003.html
Итак, я попробовал это:
curs.setinputsizes(value = cx_Oracle.CLOB)
sql = "update mytable set template='values(:value)' where id='6';"
curs.execute(sql, value = template)
и я получаю «ORA-01036: недопустимая ошибка имени / номера переменной»
Edit2:
Так вот мой код:
curs.setinputsizes(template = cx_Oracle.CLOB)
sql = "update mytable set template= :template where id='6';"
print sql, template
curs.execute(sql, template=template)
Я получаю ORA-00911: ошибка недопустимого символа.