我试图用python
代码中的无值更新表中的TIMESTAMP
列。在
当使用带空值的insert语句时,它工作得很好。在
但是当使用update语句时,它不起作用!!在
下面是测试代码,供您理解。在
(我更新'None'值的原因是,新值来自另一个数据库,我想用新值更新该值,有些值为空。)
:1是python代码中的“20160418154000”类型字符串 但当它是'None'值时,就会引发异常。在
INSERT INTO TEST_TABLE (ARR_TIME) VALUES(TO_TIMESTAMP(:1, 'YYYYMMDDHH24MISS'))
效果很好!!在
^{pr2}$它不起作用!!在
error message : ORA-00932: inconsistent datatypes: expected - got NUMBER
我想cx峎Oracle会将python中的None值识别为number(0??)
并且不能转换为'YYYYMMDDHH24MISS'
字符串类型。在
有没有办法更新TIMESTAMP
列中的空值?在
是的,有。除非您另有指定,否则空值将作为类型字符串绑定。但是,您可以使用以下代码覆盖它:
请参阅此处获取文档:
http://cx-oracle.readthedocs.org/en/latest/cursor.html#Cursor.setinputsizes
注意:您也可以使用以下代码来解决此问题:
^{pr2}$不需要使用将数据转换为\u timestamp(),因为cxu Oracle可以直接绑定时间戳值(使用日期时间。日期时间)如果你没有绑定,甲骨文会为你隐式转换。在
相关问题 更多 >
编程相关推荐