Python插数据入Oracle数据库的问题

a1419362866 2017-11-04 11:56:58
这是错误的SQL
insert into ml_sadmpa_spc_apply_ltmp values (1026942869114, 'C441902VEH17003632', ' ', ' ', '5010800', '东莞分公司', 'GCZ064',
'蓝玲', '费用理赔申请', "to_date('2017-08-31 16:10:37','yyyy-mm-dd hh24:mi:ss')",
' ', ' ', ' ', ' ', 'null', 'null', ' ', ' ', ' ', '5010800', '08', '2017',
"to_date('2017-09-02 19:00:01','yyyy-mm-dd hh24:mi:ss')")

这是能插入的SQL
insert into ml_sadmpa_spc_apply_ltmp values (1026942869114, 'C441902VEH17003632', ' ', ' ', '5010800', '东莞分公司', 'GCZ064',
'蓝玲', '费用理赔申请', to_date('2017-08-31 16:10:37','yyyy-mm-dd hh24:mi:ss'),
' ', ' ', ' ', ' ', null, null, ' ', ' ', ' ', '5010800', '08', '2017',
to_date('2017-09-02 19:00:01','yyyy-mm-dd hh24:mi:ss'))

这是主要的代码
stmt = """INSERT INTO ml_sadmpa_spc_apply_ltmp (topactualid, notificationno, ctpclaimno, comclaimno, op_branch_code,
op_branch_name, op_code, op_name, kind, statrt_time, audit_code,
audit_name, audit_descript, the_result, special_start_time, back_time,
back_reason, isreopenctp, isreopencommercial, branch_code, ml_month,
ml_year, ml_population_timestamp) VALUES (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,
:12,:13,:14,:15,:16,:17,:18,:19,:20,:21,:22,:23)"""
conn = cx_Oracle.connect('###', '####', '####')
cur = conn.cursor()
cur.executemany(stmt, params)
怎么才能让他生成正确的SQL啊 ,params打印的是错误的那种的
[(1026942869114, 'C441902VEH17003632', ' ', ' ', '5010800', '东莞分公司', 'GCZ064', '蓝玲', '费用理赔申请', "to_date('2017-08-31 16:10:37','yyyy-mm-dd hh24:mi:ss')", ' ', ' ', ' ', ' ', 'null', 'null', ' ', ' ', ' ', '5010800', '08', '2017', "to_date('2017-09-02 19:00:01','yyyy-mm-dd hh24:mi:ss')")]


...全文
352 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
a1419362866 2017-11-07
  • 打赏
  • 举报
回复
我找到原因了,空的话直接给None对象,日期的话,用python自带日期转换下就都ok了
oyljerry 2017-11-05
  • 打赏
  • 举报
回复
对比一下字符串,主要是引号的区别。用format等拼接一下
a1419362866 2017-11-05
  • 打赏
  • 举报
回复
引用 2 楼 oyljerry 的回复:
对比一下字符串,主要是引号的区别。用format等拼接一下
我Python是半个月前开始自学的,感觉导数据挺快的所以想尝试一下,谢谢您的回答啊 我知道是引号的问题,execute我能把正确的SQL拼出来,但是 cur.executemany(stmt, params)后面的这个参数是列表,里面是一个元祖对应数据库一条记录,他这个SQL不是我拼的,我只是提供后面的params列表,我发现None插到数据库,并不是NULL而是字符串None,还有日期"to_date('2017-09-02 19:00:01','yyyy-mm-dd hh24:mi:ss')"我是不希望有引号的,但是不是字符类型的to_date('2017-09-02 19:00:01','yyyy-mm-dd hh24:mi:ss')存不进去
a1419362866 2017-11-04
  • 打赏
  • 举报
回复
这个列表中的数据是通过txt文件中读取的 1026942869114||C441902VEH17003632|| || ||5010800||东莞分公司||GCZ064||蓝玲||费用理赔申请||2017-08-31 16:10:37|| || || || ||None||None|| || || ||5010800||08||2017||2017-09-02 19:00:01||

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧