Rumah pangkalan data Oracle Contoh cara mencipta dan melaksanakan prosedur tersimpan dalam Oracle

Contoh cara mencipta dan melaksanakan prosedur tersimpan dalam Oracle

Apr 25, 2023 pm 03:55 PM

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];
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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 [, ...])
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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;
Salin selepas log masuk

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!

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)

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.

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_

Oracle PL/SQL Dive Deep: Menguasai Prosedur, Fungsi & Pakej Oracle PL/SQL Dive Deep: Menguasai Prosedur, Fungsi & Pakej Apr 03, 2025 am 12:03 AM

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.

Cara Membuat Pangkalan Data Oracle Cara Membuat Pangkalan Data Oracle Cara Membuat Pangkalan Data Oracle Cara Membuat Pangkalan Data Oracle Apr 11, 2025 pm 02:36 PM

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

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.

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.

Oracle GoldenGate: Replikasi & Integrasi Data Masa Nyata Oracle GoldenGate: Replikasi & Integrasi Data Masa Nyata Apr 04, 2025 am 12:12 AM

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.

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.

See all articles