0

私はこのコードを持っています:

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

これを実行すると、次のエラーが発生します。


myFunc curs.callproc('add_command_pkg.add_command', [], { 'command_id' : 7, 'session_id' : None, 'expiry _time' : 'sysdate内のファイル "N:\app\MainWidget.py"、453 行目+ 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

You can't pass in the string 'sysdate + 7' for parameter expiry_time.

You could compose a datetime object or perhaps just change your procedure to accept a numeric "days offset" and add or subtract that from sysdate within the procedure itself.

For the committing, you can call commit on cx_Oracle's connection object.

于 2012-01-24T20:43:59.833 に答える