私は昨日のほとんどをここやウェブで質問を見て過ごしましたが、何が欠けているのかまだわかりませんでした. 本当にばかげたものに違いないと確信していますが、今では燃え尽きています。
したがって、コード:
temp_table_name = 'COMPTEMP.i'+todo_name+'_MSGRUN'
sql_create_table = "CREATE TABLE "+temp_table_name+" (CL VARCHAR2(255)) NOLOGGING NOCOMPRESS NOCACHE NOPARALLEL MONITORING"
DB_GATEWAY.execute(sql_create_table)
(これは問題なく作成されます)
sql_fill_table_header = """INSERT INTO """+temp_table_name+""" (CL) VALUES (:1)"""
sql_fill_table_build = []
sql_fill_table_build = ['1', '2', '3', '4', '55']
DB_GATEWAY.executemany(sql_fill_table_build, sql_fill_table_header)
(これは現在、セッション プール ガードに送られ、最終的には以下になります)
def executemany( self, db_operation, db_prepare ):
self.cursor_.prepare(db_prepare)
self.cursor_.executemany(None, db_operation)
これを実行すると、次のエラーが表示されます
OracleException: ORA-01036: illegal variable name/number
リストから値「55」を削除すると、他のすべてが正常に挿入されるため、1 文字の長さの値のみを受け入れているように見えます。
execute() だけで各ステートメントを実行すると、ステートメントが挿入されます。コードまたはOracleが位置引数を処理する方法のいずれかで何かを行う必要があると確信していますが、今では迷っています。
助けてくれてありがとう!