使用Python的cx_oracle callproc函数获取错误

时间:2012-01-24 17:49:52

标签: python sql cx-oracle

我有这段代码:

        curs.callproc('add_command_pkg.add_command', [],
                      { 'command_id' : 7,
                        'session_id' : None,
                        'expiry_time' : 'sysdate + 7',
                        'config_id' : 6 })

当我运行时,我收到此错误:

  

文件“N:\ app \ MainWidget.py”,第453行,在myFunc中       curs.callproc('add_command_pkg.add_command',[],{'command_id':7,   'session_id':无,'到期   _time':'sysdate + 7','config_id':6})
  cx_Oracle.DatabaseError:ORA-01858:在nu中找到了非数字字符   梅里奇是预料之中的   ORA-06512:第1行

我错误传递的参数是什么,如何解决?

编辑:

命令签名:

                                        ( command_id   IN NUMBER,
                                          expiry_time  IN DATE,
                                          session_id   IN NUMBER DEFAULT NULL,
                                          config_id    IN NUMBER DEFAULT NULL
                                        );

另外,我该怎么做?

1 个答案:

答案 0 :(得分:1)

您无法为参数expiry_time传入字符串'sysdate + 7'。

你可以编写一个datetime对象,或者只是改变你的程序来接受数字“天数偏移”,并在程序本身的sysdate中添加或减去它。

对于提交,您可以在cx_Oracle的连接对象上调用commit