0

我有这个代码:

        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' : None, 'expiry _time' : 'sysdate + 7', 'config_id' : 6 })
cx_Oracle.DatabaseError: ORA-01858: 在预期有数字的地方发现了一个非数字字符 ORA-06512: 在第 1 行

我传递了什么参数错误,我该如何解决?

编辑:

命令签名:

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

另外,我该如何提交?

4

1 回答 1

1

您不能为参数 expiry_time 传入字符串“sysdate + 7”。

您可以编写一个日期时间对象,或者只是更改您的过程以接受数字“天数偏移”,并在过程本身中从 sysdate 中添加或减去它。

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

于 2012-01-24T20:43:59.833 回答