Rumah pangkalan data Oracle Bagaimana untuk melaksanakan pertanyaan paging dalam prosedur tersimpan Oracle

Bagaimana untuk melaksanakan pertanyaan paging dalam prosedur tersimpan Oracle

Apr 18, 2023 pm 02:08 PM

Dalam pangkalan data Oracle, prosedur tersimpan ialah blok kod SQL yang boleh digunakan semula yang boleh digunakan untuk melaksanakan banyak operasi data yang kompleks. Antaranya, pertanyaan paging ialah keperluan biasa, seperti memaparkan senarai data paging dalam aplikasi web, atau memaparkan hasil dalam paging dalam laporan.

Dalam artikel ini, kami akan memperkenalkan cara melaksanakan pertanyaan halaman dalam prosedur tersimpan Oracle, dan menyediakan kod sampel mudah untuk membantu pembaca memahami dan menggunakan teknologi ini dengan lebih baik.

1. Prinsip asas pertanyaan paging

Dalam pertanyaan SQL umum, kita boleh menggunakan sintaks "SELECT * FROM table_name WHERE condition" untuk mendapatkan semula semua baris yang memenuhi syarat. Untuk melaksanakan pertanyaan paging, kami perlu memotong hasil pertanyaan mengikut bilangan halaman dan baris setiap halaman yang ditentukan, dan kemudian hanya mengembalikan data bilangan halaman yang ditentukan. Sebagai contoh, dalam halaman 1, kita boleh mendapatkan semula 10 baris pertama data, dalam halaman 2, kita boleh mendapatkan baris 11 hingga 20, dan seterusnya.

Mengikut prinsip ini, kami boleh menggunakan prosedur tersimpan Oracle untuk melaksanakan pertanyaan paging. Mula-mula, kita perlu mengira baris permulaan perolehan dan baris penamat dapatkan semula, kemudian gunakan fungsi "ROWNUM" untuk mengehadkan bilangan baris dalam hasil carian dan akhirnya mengembalikan hasil pertanyaan. Berikut ialah langkah pelaksanaan mudah:

  1. Kira garisan permulaan dan garisan penamat.

Perlu diambil perhatian bahawa fungsi ROWNUM Oracle mengisih hasil pertanyaan sebelum ia dikembalikan, bukan sebelum pertanyaan. Oleh itu, jika kita menggunakan fungsi ROWNUM dalam pernyataan pertanyaan utama, hasilnya mungkin tidak tepat atau tidak dapat diramalkan. Untuk menyelesaikan masalah ini, kita boleh menggunakan pernyataan subquery untuk mendayakan fungsi ROWNUM. Sebagai contoh, dalam pernyataan berikut, kita boleh mengira baris mula dan akhir:

PILIH baris_mula, baris_akhir
DARI (
PILIH ROWNUM AS rnum, ((halaman_no - 1) page_size + 1) SEBAGAI baris_mula, (tidak_halaman saiz_halaman) SEBAGAI baris_akhir
DARI (

SELECT 1 AS page_no, 10 AS page_size FROM DUAL
Salin selepas log masuk

)
)
WHERE rnum = 1;

at In contoh ini, kita mula-mula mentakrifkan bilangan baris dan halaman setiap halaman, dan kemudian mengira baris permulaan dan baris berakhir melalui pernyataan subquery. Pernyataan ini akan mengembalikan satu baris data, termasuk nilai baris permulaan dan akhir.

  1. Dapatkan semula data.

Selepas mengira baris permulaan dan baris akhir, kita perlu menanyakan data yang memenuhi syarat. Menggunakan pernyataan subquery, kita boleh memilih semua baris yang memenuhi kriteria dan mengehadkan bilangan baris menggunakan fungsi ROWNUM. Sebagai contoh, dalam pernyataan berikut, kita boleh menanyakan bilangan halaman data yang ditentukan:

PILIH *
DARI (
PILIH ROWNUM sebagai rnum, t.*
DARI (

SELECT *
FROM table_name
WHERE condition
ORDER BY order_by
Salin selepas log masuk

) t
)
WHERE rnum >= start_row DAN rnum <= end_row;

Dalam contoh ini, kami mula-mula mengisih data yang memenuhi kriteria, dan kemudian gunakan Fungsi ROWNUM mengehadkan keputusan. Akhir sekali, kami memilih hanya data antara baris mula yang ditentukan dan baris akhir daripada semua baris yang memenuhi syarat, dan akhirnya mengembalikan hasil pertanyaan.

2. Contoh pelaksanaan pertanyaan paging

Berikut ialah contoh prosedur tersimpan Oracle yang lengkap untuk melaksanakan pertanyaan paging:

BUAT ATAU GANTIKAN PROSEDUR PAGING_PROC(
i_page_no IN Integer,
i_page_size dalam integer,
o_records keluar sys_refcursor,
o_page_count out integer,
i_table_name dalam varchar2,
i_condition dalam varchar2,
IS
v_start_row INTEGER;
v_end_row INTEGER;
BEGIN
​​​​-- Langkah 1: Kira baris mula dan tamat
PILIH (i_page_no - 1)
i_page_size + 1, i_page . >
) WHERE rnum >= v_start_row AND rnum <= v_end_row;
-- Langkah 3: Kira kiraan halaman
PILIH CEIL(COUNT(*)/i_page_size)

KE DALAM o_page_count

FROM i_table_name
WHERE i_condition;
END PAGING_PROC;

Dalam contoh ini, kami memasukkan nombor halaman, saiz halaman, rekod output, nombor halaman dan nama jadual, Parameter seperti syarat dan pengasingan. Berdasarkan parameter input, kami mula-mula mengira baris permulaan dan baris penamat, kemudian gunakan pernyataan OPEN untuk membuka data output REFCUSOR.
SELECT ROWNUM AS rnum, t.*
FROM (
  SELECT *
  FROM i_table_name
  WHERE i_condition
  ORDER BY i_order_by
) t
Salin selepas log masuk

Akhir sekali, kami mengira bilangan halaman dan mengeluarkan hasilnya. Sila ambil perhatian bahawa cara kami mengira bilangan halaman adalah dengan menggunakan fungsi COUNT agregat untuk membahagikan bilangan semua baris yang memenuhi syarat dengan bilangan baris setiap halaman dan bundarkan.

3. Kesimpulan


Dalam pangkalan data Oracle, prosedur tersimpan ialah teknologi operasi data yang penting. Dengan menggunakan prosedur tersimpan, kami boleh melaksanakan operasi data yang kompleks, seperti pertanyaan paging, kemas kini kelompok, import dan eksport data, dsb. Terutamanya dari segi pertanyaan paging, prosedur tersimpan Oracle boleh memberikan prestasi yang lebih tinggi dan keselamatan data yang lebih baik, dan juga boleh berinteraksi dengan mudah dengan antara muka program lain.

Dalam artikel ini, kami memperkenalkan cara melaksanakan pertanyaan halaman dalam prosedur tersimpan Oracle dan menyediakan kod sampel mudah. Kami menggalakkan pembaca mencuba teknik ini dalam aplikasi sebenar dan mengoptimumkan serta memanjangkannya mengikut keperluan mereka sendiri.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pertanyaan paging dalam prosedur tersimpan Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1653
14
Tutorial PHP
1251
29
Tutorial C#
1224
24
Apakah alat operasi pangkalan data Oracle? Apakah alat operasi pangkalan data Oracle? Apr 11, 2025 pm 03:09 PM

Sebagai tambahan kepada SQL*Plus, terdapat alat untuk mengendalikan pangkalan data Oracle: pemaju SQL: alat percuma, mesra antara muka, dan menyokong operasi grafik dan debugging. TOAD: Alat perniagaan, kaya ciri, sangat baik dalam pengurusan pangkalan data dan penalaan. Pemaju PL/SQL: Alat yang berkuasa untuk pembangunan PL/SQL, penyuntingan kod dan debugging. DBeaver: Alat sumber terbuka percuma, menyokong pelbagai pangkalan data, dan mempunyai antara muka yang mudah.

Apa yang perlu dilakukan sekiranya oracle tidak dapat dibuka Apa yang perlu dilakukan sekiranya oracle tidak dapat dibuka Apr 11, 2025 pm 10:06 PM

Penyelesaian kepada Oracle tidak boleh dibuka termasuk: 1. Mulakan perkhidmatan pangkalan data; 2. Mulakan pendengar; 3. Periksa konflik pelabuhan; 4. Menetapkan pembolehubah persekitaran dengan betul; 5. Pastikan perisian firewall atau antivirus tidak menghalang sambungan; 6. Periksa sama ada pelayan ditutup; 7. Gunakan RMAN untuk memulihkan fail rasuah; 8. Periksa sama ada nama perkhidmatan TNS betul; 9. Periksa sambungan rangkaian; 10. Pasang semula perisian Oracle.

Cara menyelesaikan masalah penutup kursor oracle Cara menyelesaikan masalah penutup kursor oracle Apr 11, 2025 pm 10:18 PM

Kaedah untuk menyelesaikan masalah penutupan kursor Oracle termasuk: secara eksplisit menutup kursor menggunakan pernyataan Tutup. Mengisytiharkan kursor dalam klausa kemas kini supaya ia ditutup secara automatik selepas skop berakhir. Mengisytiharkan kursor dalam klausa menggunakan supaya ia secara automatik ditutup apabila pembolehubah PL/SQL yang berkaitan ditutup. Gunakan pengendalian pengecualian untuk memastikan kursor ditutup dalam keadaan pengecualian. Gunakan kolam sambungan untuk menutup kursor secara automatik. Lumpuhkan penyerahan automatik dan penangguhan kursor kelewatan.

Cara Belajar Pangkalan Data Oracle Cara Belajar Pangkalan Data Oracle Apr 11, 2025 pm 02:54 PM

Tiada jalan pintas untuk mempelajari pangkalan data Oracle. Anda perlu memahami konsep pangkalan data, kemahiran SQL Master, dan terus memperbaiki amalan. Pertama sekali, kita perlu memahami mekanisme penyimpanan dan pengurusan pangkalan data, menguasai konsep asas seperti jadual, baris, dan lajur, dan kekangan seperti kunci utama dan kunci asing. Kemudian, melalui amalan, pasangkan pangkalan data Oracle, mula berlatih dengan pernyataan pilih yang mudah, dan secara beransur -ansur menguasai pelbagai penyata SQL dan sintaks. Selepas itu, anda boleh mempelajari ciri -ciri canggih seperti PL/SQL, mengoptimumkan pernyataan SQL, dan merancang seni bina pangkalan data yang cekap untuk meningkatkan kecekapan dan keselamatan pangkalan data.

Cara membuat kursor di Oracle Loop Cara membuat kursor di Oracle Loop Apr 12, 2025 am 06:18 AM

Di Oracle, gelung gelung boleh membuat kursor secara dinamik. Langkah -langkahnya ialah: 1. Tentukan jenis kursor; 2. Buat gelung; 3. Buat kursor secara dinamik; 4. Melaksanakan kursor; 5. Tutup kursor. Contoh: Kursor boleh dibuat kitaran demi litar untuk memaparkan nama dan gaji 10 pekerja teratas.

Cara memeriksa saiz meja oracle Cara memeriksa saiz meja oracle Apr 11, 2025 pm 08:15 PM

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_

Cara Melihat Pangkalan Data Oracle Cara Melihat Pangkalan Data Oracle Cara Melihat Pangkalan Data Oracle Cara Melihat Pangkalan Data Oracle Apr 11, 2025 pm 02:48 PM

Untuk melihat pangkalan data Oracle, anda boleh menggunakan SQL*PLUS (menggunakan arahan pilih), pemaju SQL (antara muka graphy), atau paparan sistem (memaparkan maklumat dalaman pangkalan data). Langkah -langkah asas termasuk menyambung ke pangkalan data, penapisan data menggunakan pernyataan pilih, dan mengoptimumkan pertanyaan untuk prestasi. Di samping itu, pandangan sistem menyediakan maklumat terperinci mengenai pangkalan data, yang membantu memantau dan menyelesaikan masalah. Melalui amalan dan pembelajaran yang berterusan, anda dapat meneroka misteri pangkalan data Oracle.

Cara menyulitkan pandangan oracle Cara menyulitkan pandangan oracle Apr 11, 2025 pm 08:30 PM

Penyulitan Oracle View membolehkan anda menyulitkan data dalam pandangan, dengan itu meningkatkan keselamatan maklumat sensitif. Langkah -langkah termasuk: 1) mewujudkan kunci penyulitan induk (MEK); 2) mencipta pandangan yang disulitkan, menyatakan pandangan dan MEK untuk disulitkan; 3) Memberi kuasa pengguna untuk mengakses pandangan yang disulitkan. Bagaimana pandangan yang disulitkan berfungsi: Apabila permintaan pengguna untuk paparan yang disulitkan, Oracle menggunakan MEK untuk menyahsulit data, memastikan bahawa hanya pengguna yang diberi kuasa dapat mengakses data yang boleh dibaca.

See all articles