python 如何分批查询Oracle的数据?

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 = 1000

limit = 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

回到顶部