Python cx_Oracle 绑定变量列表
Python cx_Oracle bind list of variables
如何将绑定参数与可变参数一起使用,例如,我会在 python 中动态准备一个 insert all 语句,并希望将其与数据行绑定。
INSERT ALL
INTO mytable (column1, column2, column_n) VALUES (:expr[0][0], :expr[0][1], :expr[0][n])
INTO mytable (column1, column2, column_n) VALUES (:expr[1][0], :expr[1][n], :expr[1][n])
INTO mytable (column1, column2, column_n) VALUES (:expr[n][0], :expr[n][1], :expr[n][n])
SELECT * FROM dual;
是否可以在 python 上使用 cx_oracle
?
将您的真正问题解释为 'how do I insert lots of data efficiently in cx_Oracle',答案是不使用 INSERT ALL。相反,你应该使用 executemany():
data = [
(60, "Parent 60"),
(70, "Parent 70"),
(80, "Parent 80"),
(90, "Parent 90"),
(100, "Parent 100")
]
cursor.executemany("""
insert into ParentTable (ParentId, Description)
values (:1, :2)""", data)
这在https://blogs.oracle.com/opal/efficient-and-scalable-batch-statement-execution-in-python-cx_oracle
中都有描述
如何将绑定参数与可变参数一起使用,例如,我会在 python 中动态准备一个 insert all 语句,并希望将其与数据行绑定。
INSERT ALL
INTO mytable (column1, column2, column_n) VALUES (:expr[0][0], :expr[0][1], :expr[0][n])
INTO mytable (column1, column2, column_n) VALUES (:expr[1][0], :expr[1][n], :expr[1][n])
INTO mytable (column1, column2, column_n) VALUES (:expr[n][0], :expr[n][1], :expr[n][n])
SELECT * FROM dual;
是否可以在 python 上使用 cx_oracle
?
将您的真正问题解释为 'how do I insert lots of data efficiently in cx_Oracle',答案是不使用 INSERT ALL。相反,你应该使用 executemany():
data = [
(60, "Parent 60"),
(70, "Parent 70"),
(80, "Parent 80"),
(90, "Parent 90"),
(100, "Parent 100")
]
cursor.executemany("""
insert into ParentTable (ParentId, Description)
values (:1, :2)""", data)
这在https://blogs.oracle.com/opal/efficient-and-scalable-batch-statement-execution-in-python-cx_oracle
中都有描述