我昨天大部分时间都在这里和网络上查看问题,而且还不能真正地弄清楚我错过了什么.我很确定它必须是非常愚蠢的东西,但我现在已经烧坏了.
所以,代码:
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如何使用位置参数做一些事情,但我现在已经迷失了.
感谢帮助!