私がやろうとしているのは、cx_Oracle を使用して一連の行を挿入し、エラー (つまり、制約違反) がある場合は不良行をログに記録することです。
execute を使用してそれを行う方法の sudo コードを次に示しますが、これはあまり効率的ではないようです。
for row in rows:
try:
cursor.execute("sql", row)
except InsertError:
badRecordCSVFile.write(row)
私はドキュメントを読みましたが、最初はexecutemanyが探していたものであるように見えました。ただし、このスレッドを読んだ後、 executemany は失敗するまでクエリを処理するだけのように見えます(私が望むものではありません)。
だから私の質問は、行を挿入し、失敗した行をログに記録する最良の方法は何ですか?