cari
Rumahpangkalan dataOracleBagaimana untuk melaksanakan pertanyaan paging dalam prosedur tersimpan Oracle

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

)
)
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

) t
)
WHERE rnum >= start_row DAN rnum

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

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
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
Mysql vs. Oracle: Memilih sistem pangkalan data yang betulMysql vs. Oracle: Memilih sistem pangkalan data yang betulMay 07, 2025 am 12:09 AM

MySQL dan Oracle mempunyai perbezaan yang signifikan dalam senario prestasi, kos dan penggunaan. 1) Prestasi: Oracle melakukan lebih baik dalam pertanyaan kompleks dan persekitaran konkurensi yang tinggi. 2) Kos: MySQL adalah sumber terbuka, kos rendah, sesuai untuk projek kecil dan sederhana; Oracle dikomersialkan, kos tinggi, sesuai untuk perusahaan besar. 3) Senario Penggunaan: MySQL sesuai untuk aplikasi web dan perusahaan kecil dan sederhana, dan Oracle sesuai untuk aplikasi peringkat perusahaan yang kompleks. Apabila memilih, anda perlu menimbang keperluan khusus.

Perisian Oracle: Memaksimumkan kecekapan dan prestasiPerisian Oracle: Memaksimumkan kecekapan dan prestasiMay 06, 2025 am 12:07 AM

Perisian Oracle dapat meningkatkan prestasi dalam pelbagai cara. 1) mengoptimumkan pertanyaan SQL dan mengurangkan penghantaran data; 2) menguruskan indeks dengan sewajarnya untuk mengimbangi kelajuan pertanyaan dan kos penyelenggaraan; 3) dengan munasabah mengkonfigurasi memori, mengoptimumkan SGA dan PGA; 4) Kurangkan operasi I/O dan gunakan peranti storan yang sesuai.

Oracle: Perisian Enterprise dan Pengkomputeran AwanOracle: Perisian Enterprise dan Pengkomputeran AwanMay 05, 2025 am 12:01 AM

Oracle sangat penting dalam perisian perusahaan dan sektor pengkomputeran awan kerana penyelesaiannya yang komprehensif dan sokongan teknikal yang kuat. 1) Oracle menyediakan pelbagai jenis produk dari pengurusan pangkalan data kepada ERP, 2) perkhidmatan pengkomputeran awan seperti OracLeCloudPlatform dan Infrastructure membantu perusahaan mencapai transformasi digital, 3) Oracle pangkalan data Oracle dan integrasi lancar perkhidmatan awan meningkatkan kecekapan perusahaan.

MySQL vs. Oracle: Analisis Perbandingan Sistem Pangkalan DataMySQL vs. Oracle: Analisis Perbandingan Sistem Pangkalan DataMay 04, 2025 am 12:13 AM

MySQL dan Oracle mempunyai kelebihan dan kekurangan mereka sendiri, dan pertimbangan yang komprehensif perlu diambil kira apabila memilih: 1. MySQL sesuai untuk keperluan ringan dan mudah digunakan, sesuai untuk aplikasi web dan perusahaan bersaiz kecil dan sederhana; 2. Oracle sesuai untuk fungsi yang kuat dan keperluan kebolehpercayaan yang tinggi, sesuai untuk perusahaan besar dan sistem perniagaan yang kompleks.

Mysql vs. Oracle: Memahami Pelesenan dan KosMysql vs. Oracle: Memahami Pelesenan dan KosMay 03, 2025 am 12:19 AM

MySQL menggunakan lesen GPL dan komersil untuk projek sumber kecil dan terbuka; Oracle menggunakan lesen komersial untuk perusahaan yang memerlukan prestasi tinggi. Lesen GPL MySQL adalah percuma, dan lesen komersil memerlukan pembayaran; Yuran lesen Oracle dikira berdasarkan pemproses atau pengguna, dan kosnya agak tinggi.

Oracle: Dari pangkalan data ke perkhidmatan awanOracle: Dari pangkalan data ke perkhidmatan awanMay 02, 2025 am 12:05 AM

Evolusi Oracle dari pangkalan data ke perkhidmatan awan menunjukkan kekuatan teknikalnya yang kuat dan wawasan pasaran. 1. Oracle berasal dari tahun 1970 -an dan terkenal dengan sistem pengurusan pangkalan data relasi, dan telah melancarkan fungsi inovatif seperti PL/SQL. 2. Inti dari pangkalan data Oracle adalah model relasi dan pengoptimuman SQL, yang menyokong seni bina multi-penyewa. 3. Perkhidmatan Cloud Oracle menyediakan IaaS, PaaS dan SaaS melalui OCI, dan AutonomousDatabase berfungsi dengan baik. 4. Apabila menggunakan Oracle, anda perlu memberi perhatian kepada model pelesenan yang kompleks, pengoptimuman prestasi dan isu keselamatan data dalam penghijrahan awan.

Oracle dan MySQL: Meneroka Pendekatan Pengurusan DataOracle dan MySQL: Meneroka Pendekatan Pengurusan DataMay 01, 2025 am 12:13 AM

Oracle sesuai untuk aplikasi peringkat perusahaan yang memerlukan prestasi tinggi dan pertanyaan yang kompleks, dan MySQL sesuai untuk aplikasi web yang berkembang pesat dan digunakan. 1. Oracle menyokong pemprosesan transaksi kompleks dan ketersediaan yang tinggi, sesuai untuk sistem ERP kewangan dan besar. 2.MYSQL menekankan kemudahan penggunaan dan sokongan sumber terbuka, dan digunakan secara meluas dalam perusahaan kecil dan sederhana dan projek internet.

Mysql vs. Oracle: Lihat pengalaman penggunaMysql vs. Oracle: Lihat pengalaman penggunaApr 30, 2025 am 12:12 AM

Perbezaan pengalaman pengguna antara MySQL dan Oracle terutamanya dicerminkan dalam: 1. MySQL adalah mudah dan mudah digunakan, sesuai untuk akses cepat dan senario fleksibiliti yang tinggi; 2. Oracle mempunyai fungsi yang kuat, sesuai untuk senario yang memerlukan sokongan peringkat perusahaan. Sumber terbuka dan ciri percuma MySQL menarik pemula dan pemaju individu, sementara ciri dan alat kompleks Oracle memenuhi keperluan perusahaan besar.

See all articles

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

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.