更新日志:
- [2021-11-16]
文章发布
说明:
1. 核心原因
- 作为数据的字典中,有SQL中不存在的字段(或变量)名
2.详解
-
表结构
CREATE TABLE "FLXUSER"."TEST_DEMO" ("NAME" NVARCHAR2(100), "SCORE" NUMBER ); COMMENT ON TABLE FLXUSER.TEST_DEMO IS '测试用表,2021-11-16';
-
Python
代码def demo(): sql = 'insert into test_demo (name, score) values(:name, :score)' # 字典中的 gender不存在于SQL绑定的变量中 data1 = [ {'name': 'zhang', 'score': 100, 'gender': 'female'}, {'name': 'yuzhibo', 'score': 90, 'gender': 'male'}, ] # 正常数据 data2 = [ {'name': 'zhang', 'score': 100}, {'name': 'yuzhibo', 'score': 90} ] db = OracleUtils(**db_cfg) db.executemany(sql, data1) db.commit() if __name__ == '__main__': demo()
-
错误情况: 字典中包含
SQL
中未绑定的key
-‘gender’,这里用data1
演示- 报错 :
ORA-01036: illegal variable name/number
- 报错 :
-
正常情况: 使用
data2
演示- 执行成功
- 有数据
- 执行成功