擅长:python、mysql、java
<p>如果数据已经在Python中,那么使用<a href="http://cx-oracle.readthedocs.io/en/latest/cursor.html#Cursor.executemany" rel="nofollow noreferrer">^{<cd1>}</a>。在有这么多行的情况下,您可能仍然会执行多个调用来插入成批的记录。见<a href="https://blogs.oracle.com/opal/efficient-and-scalable-batch-statement-execution-in-python-cx_oracle" rel="nofollow noreferrer">https://blogs.oracle.com/opal/efficient-and-scalable-batch-statement-execution-in-python-cx_oracle</a></p>
<pre><code>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)
</code></pre>
<p>正如其他人指出的那样</p>
<ul>
<li>避免在语句中使用字符串插值,因为这有安全风险。
这通常也是一个可伸缩性问题。使用绑定变量。如果需要对列名等内容使用字符串插值,请确保对所有值进行santize。在</li>
<li>如果数据已经在磁盘上,那么使用SQL*Loader或data Pump之类的方法会比将数据读入cx Oracle然后发送到数据库要好。在</li>
</ul>