Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

cx_Oracle:Bagaimana cara saya mengulangi set hasil?

Cara kanonik adalah dengan menggunakan iterator kursor bawaan.

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

Anda dapat menggunakan fetchall() untuk mendapatkan semua baris sekaligus.

for row in curs.fetchall():
    print row

Akan lebih mudah untuk menggunakan ini untuk membuat daftar Python yang berisi nilai yang dikembalikan:

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

Ini dapat berguna untuk kumpulan hasil yang lebih kecil, tetapi dapat memiliki efek samping yang buruk jika kumpulan hasil besar.

  • Anda harus menunggu seluruh hasil yang ditetapkan dikembalikan ke proses klien Anda.

  • Anda mungkin menghabiskan banyak memori di klien Anda untuk menyimpan daftar bawaan.

  • Mungkin perlu beberapa saat bagi Python untuk membuat dan mendekonstruksi daftar yang akan segera Anda buang.

Jika Anda tahu ada satu baris yang dikembalikan dalam kumpulan hasil, Anda dapat memanggil fetchone() untuk mendapatkan satu baris.

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

Terakhir, Anda dapat mengulang set hasil yang mengambil satu baris dalam satu waktu. Secara umum, tidak ada keuntungan khusus dalam melakukan ini daripada menggunakan iterator.

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. Apakah ada cara untuk menentukan apakah suatu paket memiliki status di Oracle?

  2. SQL Query Dengan Row_Number, pesan berdasarkan dan di mana klausa

  3. Bagaimana cara menggunakan Parameter Array/Tabel ke Oracle (ODP.NET 10g) melalui ADO.NET/C#?

  4. Instalasi PHP PDO di windows (xampp)

  5. ORA-01036:nama/nomor variabel ilegal saat menjalankan kueri melalui C#