在使用python 向oracle数据库中插入数据时报错 ORA :invalid number,报错语句为 execute = cursor.execute(insert_sql, value)
对字段进行了不同的测试发现是因为value 中包含了一个nan值,同时value中包含的None则没有问题,后来查了nan与None的区别,参:https://blog.youkuaiyun.com/nextdoor6/article/details/81042429?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.add_param_isCf
了解到往数据库中插入数据需要将nan 换成None,我的方法是:
value = tuple(
[clob_data.getvalue(0) if x == 'CONTENT' else int(tmp[x]) if isinstance(tmp[x], numpy.int64) else tmp[x] if not isinstance(tmp[x],float) else None if np.isnan(tmp[x]) else tmp[x] for
x in insert_col])
希望遇到这个问题的朋友能够减少debug的时间