Rumah  >  Artikel  >  pangkalan data  >  Apakah fungsi prosedur tersimpan oracle

Apakah fungsi prosedur tersimpan oracle

青灯夜游
青灯夜游asal
2022-02-24 17:58:414462semak imbas

Fungsi prosedur tersimpan Oracle ialah: 1. Memudahkan operasi yang kompleks dan mengurangkan kos pembangunan keseluruhan;

Apakah fungsi prosedur tersimpan oracle

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Oracle 11g, komputer Dell G3.

Prosedur tersimpan Oracle sering digunakan dalam proses pembangunan pangkalan data sebenar Sebagai kemahiran penting untuk pembangun pangkalan data, ia memainkan peranan yang tidak boleh ditukar ganti dalam pernyataan SQL. Prosedur tersimpan yang dipanggil adalah modul program yang disimpan dalam pangkalan data untuk melaksanakan fungsi perniagaan tertentu. Ia adalah satu siri blok kod yang terdiri daripada satu atau lebih blok kod PL/SQL atau pernyataan SQL.

Peranan (kelebihan) prosedur tersimpan:

  • Memudahkan operasi yang kompleks dan mengurangkan kos pembangunan keseluruhan.

    Prosedur tersimpan merangkumi blok PL/SQL logik perniagaan yang dilaksanakan dan berbilang penyata SQL ke dalam prosedur tersimpan Pemaju lain hanya perlu memanggil prosedur bertulis untuk mendapatkan hasil yang diingini tanpa memahami semula. Ekstrak perniagaan dan tuliskannya oleh orang yang khusus.

  • Tingkatkan kebebasan data.

    Fungsinya adalah serupa dengan paparan Jika data asas jadual berubah, kita hanya perlu mengubah suai kod dalam proses tanpa mengubah suai program panggilan. Ini menghapuskan keperluan untuk program pengguna untuk menulis kod secara langsung menghadap data asas. Ini menjadikan kod lebih padu dan kurang digabungkan.

  • Tingkatkan keselamatan.

    Menggunakan prosedur tersimpan dengan berkesan mengurangkan kemungkinan ralat. Jika anda tidak menggunakan prosedur tersimpan untuk mencapai operasi tertentu, anda mungkin perlu melaksanakan berbilang penyata SQL berasingan, dan terlalu banyak langkah pelaksanaan boleh menyebabkan kebarangkalian ralat yang lebih tinggi.

  • Tingkatkan prestasi.

    Dalam proses pembangunan sebenar, pembangunan fungsi modul perniagaan mungkin memerlukan penggunaan berbilang pernyataan SQL dan berbilang blok program PL/SQL untuk menyelesaikan masalah. Dengan menulisnya ke dalam prosedur, Oracle hanya perlu menyusunnya sekali dan ia boleh dipanggil pada bila-bila masa kemudian. Jika anda tidak menggunakan prosedur dan terus menulis banyak pernyataan SQL ke dalam program, anda perlu menyusunnya beberapa kali dan menyambung ke pangkalan data beberapa kali, yang mengurangkan prestasi dengan ketara.

Buat sintaks prosedur tersimpan Oracle:

create [or replace] procedure 过程名
( p1 in|out datatype,
  p2 in|out datatype,
  ...
  pn in|out datatype
    
) is 
    
    ....--声明部分
    begin
    
    ....--过程体
    end;

Analisis sintaks:

1 perintah Proses penyimpanan.

2. buat [atau ganti]: Jika prosedur tersimpan sudah wujud, tulis ganti dan gantikan prosedur asal.

3 masuk|keluar: Prosedur tersimpan mempunyai dua pilihan parameter: parameter input dan parameter keluaran mewakili parameter input, dan keluar mewakili parameter output . Pembolehubah sepadan dihantar masuk, dan pembolehubah sepadan mesti diterima oleh parameter keluar.

4. jenis data menunjukkan jenis data yang sepadan dengan pembolehubah parameter masuk dan keluar.

5 diikuti oleh pembolehubah yang diisytiharkan yang digunakan dalam proses.

6. Mula...akhir ditulis di tengah-tengah operasi khusus prosedur tersimpan.

Contoh 1. Buat prosedur tersimpan untuk mengira kedudukan pelajar dalam kursus tertentu Gunakan prosedur tersimpan untuk mengira dan mengembalikan kedudukan yang sepadan adalah seperti berikut:

create or replace procedure sp_score_pm(
p_in_stuid in varchar2,--学号
p_in_courseid in  varchar2, --课程ID
p_out_pm out number--排名
)
is
ls_score number:=0;
ls_pm number:=0;
begin
  --获取该学生的成绩
  select t.score into ls_score from score t
   where t.stuid = p_in_stuid
     and t.courseid = p_in_courseid;
  --获取成绩比该学生高的人数
  select count(1) into ls_pm from score t
   where t.courseid = p_in_courseid
   and  t.score>ls_score;
   --得到该学生的成绩排名
   p_out_pm:=ls_pm+1;
exception
  when no_data_found  then
     dbms_output.put_line('该学生的课程:'||p_in_courseid|| '的成绩在成绩表中找不到');
end;

Lulus Kami boleh menyusun kod di atas terus dalam tetingkap SQL Selepas kompilasi berjaya, kami boleh memanggil prosedur tersimpan untuk mendapatkan kedudukan gred kursus yang sepadan dengan pelajar Prosedur tersimpan memerlukan penetapan parameter masuk dan keluar, jadi kami boleh melakukannya melalui blok pernyataan PL/SQL, kodnya adalah seperti berikut:

declare
ls_pm number;--排名
begin
  --SC201801001
  sp_score_pm('SC201801001','R20180101',ls_pm);
  dbms_output.put_line('学号:SC201801001,课程号:R20180101 的成绩排名是:'||ls_pm);
  sp_score_pm('SC201801001','R20180102',ls_pm);
  dbms_output.put_line('学号:SC201801001,课程号:R20180102 的成绩排名是:'||ls_pm);
  --SC201801002
  sp_score_pm('SC201801002','R20180101',ls_pm);
  dbms_output.put_line('学号:SC201801002,课程号:R20180101 的成绩排名是:'||ls_pm);
  sp_score_pm('SC201801002','R20180102',ls_pm);
  dbms_output.put_line('学号:SC201801002,课程号:R20180102 的成绩排名是:'||ls_pm);
  
end;

Hasilnya adalah seperti berikut:

Apakah fungsi prosedur tersimpan oracle

Tutorial yang disyorkan: "Tutorial Oracle"

Atas ialah kandungan terperinci Apakah fungsi 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