Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

cx_Oracle:Làm cách nào để lặp lại tập hợp kết quả?

Cách chuẩn là sử dụng trình lặp con trỏ tích hợp sẵn.

curs.execute('select * from people')
for row in curs:
    print row

Bạn có thể sử dụng fetchall() để nhận tất cả các hàng cùng một lúc.

for row in curs.fetchall():
    print row

Có thể thuận tiện khi sử dụng điều này để tạo danh sách Python chứa các giá trị được trả về:

curs.execute('select first_name from people')
names = [row[0] for row in curs.fetchall()]

Điều này có thể hữu ích cho các tập kết quả nhỏ hơn, nhưng có thể có tác dụng phụ xấu nếu tập kết quả lớn.

  • Bạn phải đợi toàn bộ tập hợp kết quả được trả lại trong quá trình khách hàng của bạn.

  • Bạn có thể chiếm nhiều bộ nhớ trong ứng dụng khách của mình để chứa danh sách đã tạo sẵn.

  • Có thể mất một lúc để Python tạo và giải cấu trúc danh sách mà bạn sẽ loại bỏ ngay lập tức.

Nếu bạn biết có một hàng được trả về trong tập kết quả, bạn có thể gọi fetchone() để có được một hàng duy nhất.

curs.execute('select max(x) from t')
maxValue = curs.fetchone()[0]

Cuối cùng, bạn có thể lặp lại tập kết quả tìm nạp từng hàng một. Nói chung, không có lợi thế cụ thể nào khi thực hiện việc này so với việc sử dụng trình lặp.

row = curs.fetchone()
while row:
    print row
    row = curs.fetchone()


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách tìm tất cả các chỉ mục và cột của chúng cho bảng, dạng xem và từ đồng nghĩa trong oracle

  2. 11 cách tìm hàng trùng lặp có khóa chính trong Oracle

  3. Oracle - VỚI BẢN THÂN => MERGE? (Lỗi cú pháp, )

  4. JDBC:trả về nhiều bộ kết quả thông qua một lệnh gọi cơ sở dữ liệu duy nhất - không hoạt động đối với Oracle

  5. Nối hoặc đính kèm một đối tượng json bên trong một đối tượng json đối tượng json khác với plsql