16 ビットの 16 進数のリストを含むテキスト ファイル (例: '61C7393AA9B3474DB081C7B7CCE1C545') があり、cx_Oracle を使用してそれらを Oracle RAW 列に挿入する必要があります。私はこれを試しました:
sql = "INSERT INTO GUIDS VALUES (HEXTORAW(:1))"
ids = [l.strip() for l in guidfile.readlines()]
cursor.bindarraysize = len(ids)
cursor.setinputsizes(cx_Oracle.BINARY)
cursor.executemany(sql, ids)
しかし、cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number で失敗します。executemany を呼び出す前に、Python で値をバイナリに変換する必要がありますか? もしそうなら、どのように?NB同じSQLがcursor.executeと単一の値で正常に機能しますが、リストだけで問題が発生しています。