Contoh cara mencipta dan melaksanakan prosedur tersimpan dalam Oracle
Oracle ialah sistem pengurusan pangkalan data yang sangat berkuasa dengan banyak fungsi dan ciri lanjutan, yang mana prosedur tersimpan adalah salah satu daripadanya. Prosedur tersimpan ialah satu set pernyataan SQL yang dipratentukan untuk operasi pangkalan data yang boleh disimpan dalam pangkalan data untuk kegunaan panggilan kemudian.
Dalam Oracle, prosedur tersimpan ditulis dalam PL/SQL, bahasa yang menggabungkan SQL dan pengaturcaraan. PL/SQL mempunyai keupayaan manipulasi data yang kuat dan keupayaan kawalan proses, dan boleh menulis prosedur tersimpan yang cekap dengan mudah.
Faedah prosedur tersimpan
Faedah utama prosedur tersimpan ialah ia boleh meningkatkan kecekapan pelaksanaan pangkalan data dan mengurangkan overhed komunikasi rangkaian. Oleh kerana prosedur tersimpan telah dikompilasi dan dioptimumkan terlebih dahulu, tidak perlu menghuraikan dan mengoptimumkannya berulang kali semasa pelaksanaan, dan boleh dipanggil terus untuk pelaksanaan. Selain itu, prosedur tersimpan juga boleh melaksanakan operasi dinamik melalui parameter, yang bukan sahaja memudahkan kod tetapi juga mengelakkan risiko seperti suntikan SQL.
Penciptaan dan pelaksanaan prosedur tersimpan
Berikut menerangkan cara mencipta dan melaksanakan prosedur tersimpan dalam Oracle.
Buat prosedur tersimpan
Dalam Oracle, anda perlu menggunakan pernyataan CREATE PROCEDURE untuk mencipta prosedur tersimpan adalah seperti berikut:
CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_name [IN | OUT | IN OUT] parameter_type [, ...])] [IS | AS] BEGIN pl/sql_code_block; END [procedure_name];
Di mana:
- BUAT PROSEDUR: Pernyataan untuk mencipta prosedur tersimpan.
- ATAU GANTI: Parameter pilihan Jika parameter ini ditentukan, ini bermakna prosedur tersimpan yang dibuat akan diganti jika ia sudah wujud.
- procedure_name: Nama prosedur yang disimpan.
- parameter_name: Parameter input dan/atau output pilihan yang digunakan untuk menentukan input dan output prosedur yang disimpan.
- parameter_type: Jenis parameter, yang boleh menjadi jenis data seperti VARCHAR2, NUMBER atau jenis kursor, seperti SYS_REFCURSOR.
- IS |. AS: Parameter pilihan, digunakan untuk menentukan jenis bahasa prosedur yang disimpan, IS mewakili permulaan (blok PL/SQL), AS mewakili penghujung (blok PL/SQL).
- pl/sql_code_block: Blok kod PL/SQL, yang mengandungi pelaksanaan logik khusus prosedur tersimpan.
Kod contoh berikut menunjukkan cara mencipta prosedur tersimpan mudah yang menerima dua parameter dan menghasilkan jumlahnya:
CREATE OR REPLACE PROCEDURE add_nums( num1 IN NUMBER, num2 IN NUMBER, sum OUT NUMBER ) IS BEGIN sum := num1 + num2; END add_nums;
Laksanakan prosedur tersimpan
Dalam Oracle, pernyataan EXECUTE atau EXECUTE IMMEDIATE diperlukan untuk melaksanakan prosedur tersimpan. Sebagai contoh, untuk melaksanakan program contoh di atas, anda boleh menggunakan pernyataan berikut:
DECLARE result NUMBER; BEGIN add_nums(10, 20, result); DBMS_OUTPUT.PUT_LINE('The sum is: ' || result); END;
Di sini kami menggunakan pernyataan DECLARE untuk mengisytiharkan hasil pembolehubah yang perlu digunakan, dan memanggil prosedur tersimpan add_nums dan keluarkan hasilnya ke skrin.
Jenis parameter
Dalam prosedur tersimpan, parameter boleh menjadi parameter input, parameter output atau parameter dwiarah.
- Parameter input: Tentukan input prosedur yang disimpan.
- Parameter output: Tentukan output prosedur yang disimpan.
- Parameter dua arah: boleh menjadi input atau output.
Kaedah mengisytiharkan jenis parameter adalah seperti berikut:
(param_name [IN | OUT | IN OUT] param_type [, ...])
Dalam pengisytiharan ini, [MASUK | KELUAR] ialah parameter pilihan, digunakan untuk menentukan jenis parameter. Jika jenis parameter tidak ditentukan, ia lalai kepada jenis IN, iaitu parameter input.
Kod sampel:
CREATE OR REPLACE PROCEDURE my_proc ( num IN NUMBER, str IN OUT VARCHAR2, cur OUT SYS_REFCURSOR ) IS BEGIN -- 逻辑实现 END my_proc;
Dalam kod di atas, kami mengisytiharkan prosedur tersimpan my_proc yang mengandungi tiga parameter Nombor parameter pertama ialah parameter input, dan parameter str kedua ialah dua parameter -way, dan parameter ketiga cur ialah parameter output.
Pemprosesan set rekod
Apabila menggunakan prosedur tersimpan untuk mengendalikan data, selalunya perlu mengembalikan senarai hasil pertanyaan. Oracle menyediakan dua jenis set rekod: kursor dan jadual PL/SQL.
Kursor
Kursor ialah struktur data yang mengembalikan set hasil, yang boleh merentasi hasil pertanyaan. Kursor boleh menjadi eksplisit atau tersirat Kursor eksplisit memerlukan pengisytiharan pembolehubah kursor dan membuka dan menutupnya dalam kod secara automatik dibuat dan diuruskan oleh Oracle.
Berikut ialah prosedur tersimpan yang menunjukkan cara menggunakan kursor:
CREATE OR REPLACE PROCEDURE get_employee( id_list IN VARCHAR2, emp_cur OUT SYS_REFCURSOR ) IS BEGIN OPEN emp_cur FOR 'SELECT * FROM employees WHERE id IN (' || id_list || ')'; END get_employee;
Dalam contoh ini, kami mengisytiharkan prosedur tersimpan get_employee dengan dua parameter, yang menerima senarai A yang dipisahkan koma ID pekerja digunakan sebagai parameter input dan kursor emp_cur yang mengandungi maklumat pekerja yang dipilih dikembalikan.
Jadual PL/SQL
Jadual PL/SQL ialah struktur data seperti tatasusunan yang boleh menyimpan set nilai. Jadual PL/SQL mempunyai banyak aplikasi praktikal dalam prosedur tersimpan, seperti menghantar satu set data kepada prosedur tersimpan, dsb.
Dalam Oracle, jadual PL/SQL boleh diisytiharkan dan digunakan dalam prosedur tersimpan, seperti kod berikut:
CREATE OR REPLACE PACKAGE my_package IS TYPE num_list IS TABLE OF NUMBER INDEX BY PLS_INTEGER; PROCEDURE sum_nums(nums IN num_list, sum OUT NUMBER); END my_package; CREATE OR REPLACE PACKAGE BODY my_package IS PROCEDURE sum_nums(nums IN num_list, sum OUT NUMBER) IS total NUMBER := 0; BEGIN FOR indx IN 1 .. nums.COUNT LOOP total := total + nums(indx); END LOOP; sum := total; END sum_nums; END my_package;
Di sini, kami telah mencipta pakej bernama my_package, di mana A PL /SQL jenis jadual bernama num_list dan prosedur tersimpan sum_nums yang menggunakan jenis ini diisytiharkan. sum_nums menerima hujah jenis num_list dan mengira jumlahnya.
Kesimpulan
Dalam Oracle, prosedur tersimpan adalah salah satu alat penting untuk mengekalkan pangkalan data Mereka mempunyai keupayaan dan dinamik pelaksanaan yang cekap. Kami juga boleh menggunakan prosedur tersimpan untuk membiarkannya melaksanakan beberapa logik perniagaan dan bukannya hanya melaksanakan satu pernyataan SQL, yang boleh meningkatkan kebolehgunaan semula dan kebolehselenggaraan. Kerana ia boleh disimpan dalam pangkalan data dan dikongsi serta diakses oleh pelbagai aplikasi atau proses. Terdapat banyak faedah menggunakan prosedur tersimpan, dan sukar untuk mengupas semuanya dalam artikel pendek Namun, kami percaya bahawa selagi kami mempunyai pemahaman dan aplikasi yang mendalam, kami akan mendapat banyak manfaat dalam kerja sebenar.
Atas ialah kandungan terperinci Contoh cara mencipta dan melaksanakan prosedur tersimpan 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

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

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





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.

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

Untuk membuat pangkalan data Oracle, kaedah biasa adalah menggunakan alat grafik DBCA. Langkah -langkah adalah seperti berikut: 1. Gunakan alat DBCA untuk menetapkan DBName untuk menentukan nama pangkalan data; 2. Tetapkan SYSPASSWORD dan SYSTEMPASSWORD kepada kata laluan yang kuat; 3. Tetapkan aksara dan NationalCharacterset ke Al32utf8; 4. Tetapkan MemorySize dan Tablespacesize untuk menyesuaikan mengikut keperluan sebenar; 5. Tentukan laluan logfile. Kaedah lanjutan dibuat secara manual menggunakan arahan SQL, tetapi lebih kompleks dan terdedah kepada kesilapan. Perhatikan kekuatan kata laluan, pemilihan set aksara, saiz dan memori meja makan

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.

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.

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