Question

J'ai ce code:

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

Quand je cours cela, je reçois cette erreur:

fichier "n: \ app \ mainwidget.py", ligne 453, dans myfunc
CURS.CALLPROC ('add_command_pkg.add_command', [], {'Command_ID': 7, 'session_id': aucun, expiration _Time ':' sysdate + 7 ',' config_id ': 6})
cx_oracle.databaseError: ORA-01858: Un caractère non numérique a été trouvé où une NU Meric était attendu Ora-06512: à la ligne 1

Quel paramètre suis-je mal et comment puis-je le réparer?

EDIT:

Signature de la commande:

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

aussi, comment puis-je commettre ceci?

Était-ce utile?

La solution

Vous ne pouvez pas passer dans la chaîne 'sysdate + 7' pour le paramètre expiry_time.

Vous pouvez composer un DateTime objet ou peut-être changer simplement votre procédure pour accepter un chiffre."Days compensation" et ajoutez ou soustrayez-le de Sysdate dans la procédure elle-même.

Pour le besoin, vous pouvez appeler commit sur CX_oracleObjet de connexion.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top