2
複数のCSVを解析し、cx_Oracleを使用してそのデータをテーブルに挿入しようとしています。実行時にテーブルに挿入するのに問題はありませんが、executemanyで同じ手順を試すとエラーが発生します。動作する実行使用して私のコードはCLXを持つcx_Oracle executemany
with open(key,'r') as file:
for line in file:
data = data.split(",")
query = "INSERT INTO " + tables[key] + " VALUES ("
for col in range(len(data)):
query += ":" + str(col) + ","
query = query[:-1] + ")"
cursor.execute(query, data)
ですが、私は
with open(key,'r') as file:
list = []
for line in file:
data = data.split(",")
list.append(data)
if len(list) > 0:
query = "INSERT INTO " + tables[key] + " VALUES ("
for col in range(len(data)):
query += ":" + str(col) + ","
query = query[:-1] + ")"
cursor.prepare(query)
cursor.executemany(None,list)
と交換したとき、私は「とValueError:文字列データが大きすぎる」を取得するCLOB列があると、テーブルに挿入しようとしたときデータは4000バイト以上です。 Executemanyは、表にCLOB列がない場合に有効です。 executemanyを実行するときに、適切な列をCLOBとして扱うようにcx_Oracleに指示する方法はありますか?