前提・実現したいこと
python・postgreSQL psycopg2でのエラーハンドリング
pythonでバッチ処理を作成しており、エラーハンドリングのため、
ログを出力したいと思っています。
発生している問題・エラーメッセージ
クエリの実行や、エラーメッセージの出力は行えるのですが、 クエリがエラーになってしまった場合、変数Queryの値がprintされてしまい、 クエリ内のバインド変数に値を入れた後のクエリを出力できません。 下記ソースコードの場合、USERSテーブルのカラムidはinteger型で文字列を登録できなくクエリがエラーになるのですが、 エラー出力は INSERT INTO USERS VALURS(%(p_id)s, %(p_flg)s); このままとなってしまいます。 (実現したいこと) INSERT INTO USERS VALURS('あいうえ', 1);
該当のソースコード
python
1 def run(self, Query, params): 2 try: 3 cur.execute(Query, params) 4 except Exception as e: 5 print(Query) 6 print(e) 7 cur.close() 8 connection.rollback() 9 connection.close() 10 sys.exit() 11 12 13 def executeQuery(self, Query, params): 14 run(Query, params) 15 ret = cur.fetchall() 16 return ret 17 18 def query(self): 19 params = {'p_id':'あいうえ', 20 'p_flg':1} 21 Query = 'INSERT INTO USERS VALURS(%(p_id)s, %(p_flg)s);' 22 23 query_ret = executeQuery(Query, params) 24
あなたの回答
tips
プレビュー