python 如何分批查询Oracle的数据?
python 如何分批查询Oracle 就是比如数据库有几万数据第一次查询前100以此类推一直到查询到所有数据
回答:
python">import cx_Oracle# 创建数据库连接
dsn = cx_Oracle.makedsn('hostname', 'port', 'dbname')
connection = cx_Oracle.connect('username', 'password', dsn)
# 创建游标
cursor = connection.cursor()
# 分页查询
batch_size = 100
page_num = 1
while True:
start = (page_num - 1) * batch_size + 1
end = page_num * batch_size
query = f"""
SELECT * FROM (
SELECT t.*, ROWNUM r FROM (SELECT * FROM your_table ORDER BY some_column) t
WHERE ROWNUM <= {end}
) WHERE r >= {start}
"""
cursor.execute(query)
rows = cursor.fetchall()
if not rows:
break
for row in rows:
print(row)
page_num += 1
# 关闭游标和连接
cursor.close()
connection.close()
回答:
你可以先select count 获取到数据总量,然后再遍历数据就行了,比如你先select count 得出总共有1000条数据, 你一次取10条的话,就遍历100次就行,写个伪代码
count = 1000limit = 10
times = 1000/limit
data = []
for i=0; i<tiems; i++ {
res = select * from xxx limit ${i*limit+limit},${limit}
data.push(res)
}
回答:
1、先用SQL查询出总页数,然后循环通过给sql拼接分页参数实现
2、通过游标一行一行获取数据,每100行处理一次数据
以上是 python 如何分批查询Oracle的数据? 的全部内容, 来源链接: utcz.com/p/939057.html