python - 如何修复Python中的 'TypeError: expecting string or bytes object'错误

标签 python sql oracle sql-insert

我想在表中插入一行。但我得到了 TypeError: waiting string or bytes object 这个错误。

Traceback (most recent call last): File "d:\Git\Repos\mavi\oracle_connection.py", line 19, in c.prepare(QUERY,{"expr":expr, "expr2":expr2}) TypeError: expecting string or bytes object

import cx_Oracle
dsn_tns = cx_Oracle.makedsn(***)
conn = cx_Oracle.connect(***)
c = conn.cursor()

expr = bytes('', 'utf-8')
expr2 = bytes('ML_TEST', 'utf-8')

QUERY = '''
    INSERT INTO dev_log (LOG, SQ_DEV_LOG_ID, LF_TEKLIF_WS, PACKAGE BODY, LINE_NO)
    VALUES
    (:expr,:expr,:expr2,:expr,:expr)
'''

rows = [] 

c.prepare(QUERY,{"expr":expr, "expr2":expr2})      
c.executemany(None, rows)
conn.commit()

conn.close()

如何解决这个问题?

最佳答案

尝试:

c.prepare(QUERY)      
c.executemany(None, [{"expr":expr, "expr2":expr2}])

从文档来看,您似乎应该将参数传递给 executemany,而不是 prepare

https://cx-oracle.readthedocs.io/en/latest/cursor.html

关于python - 如何修复Python中的 'TypeError: expecting string or bytes object'错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55747709/

相关文章:

sql - 替代动态 SQL

sql - oracle sql select 与员工

database - 我们可以在 Oracle 的 SQL-Loader 中使用多少种类型的平面文件?

sql - 如何统计oracle每月返回的行数?

python - 使用 Python Paramiko 通过 SCP 在两个远程 Linux 服务器之间复制文件

python - 如何在不重复导入顶级名称的情况下构造python包

python - 使用 cursor.execute() 时出现 MySQLdb 错误

java - Hibernate - 回滚 : org. hibernate.MappingException:未知实体

mySQL:加载从另一个值作为子字符串的 CHAR 值

python - 规则间隔点的 3-D 网格