cx_Oracleを使用して、あるデータベースから行を選択し、それらの行を別のデータベースのテーブルに挿入しています。2番目のテーブルの列は、最初の選択と一致します。だから私は(簡略化して)持っています:
db1_cursor.execute('select col1, col2 from tab1')
rows = db1_cursor.fetchall()
db2_cursor.bindarraysize = len(rows)
db2_cursor.setinputsizes(cx_Oracle.NUMBER, cx_Oracle.BINARY)
db2_cursor.executemany('insert into tab2 values (:1, :2)', rows)
これは問題なく機能しますが、私の質問は、setinputsizesでのハードコーディングを回避する方法です(さらに多くの列があります)。db1_cursor.descriptionから列タイプを取得できますが、それらをsetinputsizesにフィードする方法がわかりません。つまり、引数の代わりにリストをsetinputsizesに渡すにはどうすればよいですか?これが理にかなっていることを願っています-pythonとcx_Oracleの新機能