嗨,我正在尝试使用python存储oracle数据库中的blob数据,并尝试将其以.zip格式存储在本地文件夹中。所以我现在有两个代码,其中一个运行良好,但只获取一行并将其存储为.zip在一个文件夹中,但另一个我试图获取多行,不工作,可能我做了一些基本的错误,但无法找出,所以请帮助我。下面是代码:-你知道吗
代码1—运行良好,只获取一行并将其存储为.zip文件文件夹:-你知道吗
import cx_Oracle
import numpy as np
import pandas as pd
con = cx_Oracle.connect("OPTDB90", "OPTDB90", "INDLIN2338:1521/OPTEPC1")
cursor = con.cursor()
sql_string = """SELECT F_name, F_released_data FROM epc_project where rownum<5"""
cursor.execute(sql_string)
#Path="C:\Users\adityasi\Desktop\MY Important\QueryGeneratorPytthonFinal\Project\EPCPROJECTS"
row = cursor.fetchone()
blobdata = np.array(row[1].read())
cursor.close()
filename = str(row[0]) + ".zip"
f = open(filename, 'w+b')
binary_format = bytearray(blobdata)
f.write(binary_format)
f.close()
代码2—抛出错误,无法获取多行并将其存储为.zip文件文件夹:-你知道吗
import cx_Oracle
import numpy as np
import pandas as pd
con = cx_Oracle.connect("OPT", "OPT", "INDLIN2338:1521/OPT1")
cursor = con.cursor()
sql_string = """SELECT F_name, F_released_data FROM epc_project where rownum<5"""
cursor.execute(sql_string)
rows = cursor.fetchall()
for row in rows:
blobdata= np.array(row[1].read())
cursor.close()
filename =str(row[0]) + ".zip"
con.close()
f = open(filename, "wb")
binary_format = bytearray(blobdata)
f.write(binary_format)
f.close()
你知道吗错误:-你知道吗
blobdata= np.array(row[1].read())
AttributeError: 'str' object has no attribute 'read'
Process finished with exit code 1
请帮帮我。 谢谢, 再见
我不确定是否需要使用numpy,但在任何情况下,您都可以选择:
(1)使用输出类型处理程序确保LOB数据直接以字节的形式返回,而不是必须调用read()的BLOB。请参阅documentation以了解有关如何执行此操作的详细信息。你知道吗
(2)迭代光标并分别处理每一行,如:
相关问题 更多 >
编程相关推荐