Cara menulis paging dalam oracle
Oracle ialah sistem pengurusan pangkalan data hubungan yang sangat popular yang menyediakan fungsi bahasa SQL yang kaya, termasuk pernyataan OFFSET dan FETCH untuk halaman. Dalam pembangunan sebenar, kami sering perlu menggunakan halaman untuk mengoptimumkan kecekapan pertanyaan dan meningkatkan pengalaman pengguna. Artikel ini akan memperkenalkan cara melaksanakan fungsi paging dalam Oracle.
1. Gunakan ROWNUM untuk halaman
Oracle mempunyai lajur pseudo ROWNUM terbina dalam, yang memberikan nombor berangka dalam urutan dan boleh digunakan untuk operasi halaman. Kami boleh mendapatkan keseluruhan keputusan yang ditetapkan melalui pertanyaan, dan kemudian menggunakan ROWNUM untuk menapis data dengan nombor halaman dan nombor rekod yang ditentukan.
Sebagai contoh, katakan kita mempunyai jadual bernama PEKERJA dan perlu menanyakan halaman 2 dan memaparkan 10 rekod pada setiap halaman Anda boleh menggunakan pernyataan SQL berikut untuk melaksanakan paging.
SELECT * FROM ( SELECT ROWNUM rn, e.* FROM EMPLOYEE e WHERE ROWNUM <= :page * :pageSize ) WHERE rn > (:page - 1) * :pageSize
Antaranya, :page dan :pageSize ialah parameter, menunjukkan nombor halaman yang akan ditanya dan bilangan rekod yang dipaparkan pada setiap halaman. Proses khusus pernyataan SQL ini adalah seperti berikut:
- Pertanyaan dalaman terlebih dahulu mengisih rekod dalam jadual PEKERJA mengikut saiz ROWNUM dan memberikan nombor ROWNUM kepada setiap rekod.
- Pertanyaan luaran kemudiannya beroperasi pada set hasil pertanyaan dalaman, menggunakan WHERE rn > (:page - 1) * :pageSize untuk menapis data dengan nombor halaman dan nombor rekod.
Memandangkan ROWNUM diperuntukkan selepas mengisih, pertanyaan dalaman mesti mengisih data dahulu, jika tidak, hasil halaman tidak akan ditentukan.
Perlu diambil perhatian bahawa jika hasil pertanyaan hanya mempunyai satu rekod, menggunakan pernyataan SQL di atas boleh menyebabkan keputusan yang ditetapkan menjadi kosong. Penyelesaiannya ialah menukar WHERE rn > (:page - 1) :pageSize kepada WHERE rn BETWEEN ((:page - 1) :pageSize + 1) DAN (:page * :pageSize).
2. Gunakan paging OFFSET dan FETCH
Bermula dari Oracle 12c, ia menyokong paging menggunakan pernyataan OFFSET dan FETCH. Kaedah ini tidak memerlukan penggunaan ROWNUM, dan sintaksnya lebih ringkas dan jelas. Berikut adalah contoh penggunaan OFFSET dan FETCH untuk melaksanakan paging:
SELECT * FROM EMPLOYEE ORDER BY emp_id OFFSET (:page - 1) * :pageSize ROWS FETCH NEXT :pageSize ROWS ONLY
Antaranya, :page dan :pageSize masing-masing mewakili nombor halaman yang hendak disoal dan bilangan rekod yang dipaparkan pada setiap halaman. Proses khusus pernyataan SQL ini adalah seperti berikut:
- Mula-mula susun rekod dalam jadual PEKERJA mengikut emp_id.
- OFFSET (:halaman - 1) * :pageSize ROWS menentukan bilangan baris untuk dilangkau, iaitu kedudukan rekod permulaan untuk disoal dalam jadual yang diisih.
- FETCH NEXT :pageSize ROWS SAHAJA menentukan bilangan rekod yang hendak disoal, iaitu bilangan rekod yang dipaparkan pada setiap halaman.
Berhati-hati apabila menggunakan pernyataan OFFSET dan FETCH untuk membuat pertanyaan Jika bilangan rekod yang ditanya kurang daripada satu halaman, hasil pertanyaan akan kosong. Dalam kes ini, kita perlu mengira secara manual bilangan rekod yang tinggal dan menapis menggunakan klausa WHERE.
3. Ringkasan
Di atas memperkenalkan dua kaedah untuk melaksanakan fungsi paging dalam pangkalan data Oracle: menggunakan ROWNUM dan menggunakan OFFSET dan FETCH. Kedua-dua kaedah mempunyai kelebihan dan kekurangan mereka sendiri, dan pembangun boleh memilih kaedah yang sesuai mengikut senario aplikasi tertentu.
Perlu diambil perhatian bahawa untuk meningkatkan kecekapan pertanyaan, indeks yang sesuai harus digunakan semasa halaman. Pada masa yang sama, jika keputusan pertanyaan melebihi 1,000, pertanyaan paging harus ditukar menjadi pertanyaan kelompok untuk mengelakkan memulangkan terlalu banyak data dalam satu pertanyaan.
Atas ialah kandungan terperinci Cara menulis paging dalam oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel ini menerangkan cara membuat pengguna dan peranan dalam Oracle menggunakan arahan SQL, dan membincangkan amalan terbaik untuk menguruskan kebenaran pengguna, termasuk menggunakan peranan, mengikuti prinsip keistimewaan paling sedikit, dan audit biasa.

Artikel ini menggariskan langkah -langkah untuk mengkonfigurasi penyulitan data telus (TDE) di Oracle, memperincikan penciptaan dompet, membolehkan TDE, dan penyulitan data di pelbagai peringkat. Ia juga membincangkan manfaat TDE seperti perlindungan data dan pematuhan, dan bagaimana untuk veri

Artikel ini membincangkan kaedah untuk melakukan sandaran dalam talian di Oracle dengan downtime yang minimum menggunakan RMAN, amalan terbaik untuk mengurangkan downtime, memastikan konsistensi data, dan memantau kemajuan sandaran.

Artikel ini menerangkan cara menggunakan AWR dan Addm Oracle untuk pengoptimuman prestasi pangkalan data. Ia memperincikan penjanaan dan menganalisis laporan AWR, dan menggunakan Addm untuk mengenal pasti dan menyelesaikan kesesakan prestasi.

Prosedur, fungsi dan pakej dalam OraclePL/SQL digunakan untuk melaksanakan operasi, mengembalikan nilai dan menyusun kod, masing -masing. 1. Proses ini digunakan untuk melakukan operasi seperti mengeluarkan salam. 2. Fungsi ini digunakan untuk mengira dan mengembalikan nilai, seperti mengira jumlah dua nombor. 3. Pakej digunakan untuk mengatur unsur -unsur yang relevan dan meningkatkan modulariti dan mengekalkan kod, seperti pakej yang menguruskan inventori.

OracleGoldEngate membolehkan replikasi dan integrasi data masa nyata dengan menangkap log transaksi pangkalan data sumber dan menggunakan perubahan pada pangkalan data sasaran. 1) Tangkap perubahan: Baca log transaksi pangkalan data sumber dan tukarnya ke fail jejak. 2) Perubahan penghantaran: Transmisi ke sistem sasaran melalui rangkaian, dan penghantaran diuruskan menggunakan proses pam data. 3) Perubahan Aplikasi: Pada sistem sasaran, proses salinan membaca fail jejak dan menggunakan perubahan untuk memastikan konsistensi data.

Untuk menanyakan saiz ruang meja oracle, ikuti langkah -langkah berikut: Tentukan nama meja dengan menjalankan pertanyaan: pilih Tablespace_Name dari DBA_TableSpaces; Tanya saiz meja dengan menjalankan pertanyaan: pilih jumlah (bait) sebagai total_size, jumlah (bytes_free) sebagai tersedia_space, jumlah (bytes) - jumlah (bytes_free) sebagai digunakan_space dari dba_data_files di mana tablespace_

Prosedur butiran artikel untuk switchover dan failover dalam Pengawal Data Oracle, menekankan perbezaan, perancangan, dan ujian mereka untuk meminimumkan kehilangan data dan memastikan operasi yang lancar.
