擅长:python、mysql、java
<p>条件<code>type(row[0]) is cx_Oracle.BLOB</code>总是错误的。因为<code>cx_Oracle.BLOB</code>是结果中出现的列类型
设置description,但类是<code>cx_Oracle.LOB</code>,因此要检查它:</p>
<pre><code>row = bcur.fetchone()
if isinstance(row[0], cx_Oracle.LOB):
file.write(row[0].read())
</code></pre>
<p>文件最终为空的原因是它从未被写入。你知道吗</p>
<p>其余的答案都是正确的。你知道吗</p>
<hr/>
<p>为什么要用编码打开文件?它应该是不应该被转码的二进制数据。你知道吗</p>
<p>替换<code>with codecs.open('x.pdf', encoding='utf-8', mode='wb+') as file:</code></p>
<p>与<code>with open('x.pdf', mode='wb+') as file:</code></p>