Rumah > pangkalan data > Oracle > oracle stored procedure if statement

oracle stored procedure if statement

PHPz
Lepaskan: 2023-05-07 19:37:05
asal
5774 orang telah melayarinya

Dalam Oracle, prosedur tersimpan ialah blok kod yang menggabungkan berbilang pernyataan SQL dan merangkumnya dalam satu unit. Prosedur tersimpan boleh membantu kami melaksanakan operasi pemprosesan data yang kompleks dalam pangkalan data, dengan itu meningkatkan prestasi dan kecekapan pangkalan data. Dalam prosedur tersimpan, pernyataan if ialah pernyataan kawalan aliran biasa yang boleh melaksanakan pernyataan SQL yang berbeza berdasarkan pertimbangan bersyarat. Artikel ini akan memperkenalkan penggunaan pernyataan if dalam prosedur tersimpan Oracle.

  1. Penggunaan asas pernyataan if

Pernyataan if dalam prosedur tersimpan Oracle adalah serupa dengan pernyataan if dalam bahasa pengaturcaraan lain Ia boleh melaksanakan SQL yang berbeza berdasarkan pertimbangan bersyarat kenyataan. Sintaks asas pernyataan if adalah seperti berikut:

IF condition THEN
    statement1;
ELSE
    statement2;
END IF;
Salin selepas log masuk

Antaranya, syarat ialah ungkapan bersyarat Jika nilainya BENAR, pernyataan1 dilaksanakan, sebaliknya pernyataan2 dilaksanakan. Perlu diingatkan bahawa pernyataan if mesti berakhir dengan END IF.

Berikut ialah contoh mudah:

CREATE OR REPLACE PROCEDURE check_salary (emp_id IN NUMBER) AS
    salary NUMBER;
BEGIN
    SELECT salary INTO salary FROM employees WHERE employee_id = emp_id;
    IF salary > 5000 THEN
        DBMS_OUTPUT.PUT_LINE('This employee earn more than 5000.');
    ELSE
        DBMS_OUTPUT.PUT_LINE('This employee earn less than or equal to 5000.');
    END IF;
END;
Salin selepas log masuk

Prosedur tersimpan check_gaji menerima parameter emp_id, kemudian menanyakan gaji pekerja daripada jadual pekerja dan mengeluarkan nilai yang berbeza berdasarkan sama ada gaji lebih besar daripada 5000 maklumat. Jika gaji lebih besar daripada 5000, keluaran Pekerja ini memperoleh lebih daripada 5000, sebaliknya output Pekerja ini memperoleh kurang daripada atau sama dengan 5000..

  1. pernyataan if-elsif

Dalam prosedur tersimpan Oracle, jika pernyataan juga boleh disarangkan untuk membentuk struktur pernyataan if-elsif untuk mencapai pertimbangan berbilang syarat. Sintaks asas pernyataan if-elsif adalah seperti berikut:

IF condition1 THEN
    statement1;
ELSIF condition2 THEN
    statement2;
ELSIF condition3 THEN
    statement3;
ELSE
    statement4;
END IF;
Salin selepas log masuk

Antaranya, syarat1, syarat2 dan syarat3 ialah tiga ungkapan bersyarat Jika nilainya BENAR pula, pernyataan1, pernyataan2 dan pernyataan3 akan menjadi dilaksanakan, jika tidak pernyataan4 akan dilaksanakan. Klausa elsif berbilang boleh ditambah mengikut keperluan.

Berikut ialah contoh:

CREATE OR REPLACE PROCEDURE check_grade (stu_id IN NUMBER) AS
    grade NUMBER;
BEGIN
    SELECT score INTO grade FROM student WHERE student_id = stu_id;
    IF grade >= 90 THEN
        DBMS_OUTPUT.PUT_LINE('The student got A.');
    ELSIF grade >= 80 THEN
        DBMS_OUTPUT.PUT_LINE('The student got B.');
    ELSIF grade >= 70 THEN
        DBMS_OUTPUT.PUT_LINE('The student got C.');
    ELSE
        DBMS_OUTPUT.PUT_LINE('The student failed.');
    END IF;
END;
Salin selepas log masuk

Prosedur tersimpan check_grade ini menerima stu_id parameter, kemudian menanyakan skor pelajar daripada jadual pelajar, menentukan gred berdasarkan skor dan mengeluarkan yang sepadan maklumat .

  1. Jika pernyataan bersarang dan digunakan

Dalam prosedur tersimpan Oracle, jika pernyataan juga boleh disarangkan untuk mencapai pertimbangan bersyarat yang lebih kompleks. Berikut ialah contoh:

CREATE OR REPLACE PROCEDURE check_employee (emp_id IN NUMBER) AS
    salary NUMBER;
BEGIN
    SELECT salary INTO salary FROM employees WHERE employee_id = emp_id;
    IF salary > 10000 THEN
        DBMS_OUTPUT.PUT_LINE('This employee is a senior manager.');
    ELSE
        IF salary > 5000 THEN
            DBMS_OUTPUT.PUT_LINE('This employee is a manager.');
        ELSE
            DBMS_OUTPUT.PUT_LINE('This employee is a staff.');
        END IF;
    END IF;
END;
Salin selepas log masuk

Prosedur tersimpan check_employee menerima parameter emp_id, kemudian menanyakan gaji pekerja daripada jadual pekerja, menentukan pangkatnya berdasarkan gaji dan mengeluarkan maklumat yang sepadan. Jika gaji lebih daripada 10,000, ia adalah pengurus kanan jika gaji antara 5,000 dan 10,000, ia adalah seorang pengurus;

  1. Ringkasan

Dalam prosedur tersimpan Oracle, pernyataan if ialah pernyataan kawalan proses biasa, yang boleh melaksanakan pernyataan SQL yang berbeza berdasarkan pertimbangan bersyarat untuk mencapai operasi pemprosesan Data yang kompleks . Jika pernyataan juga boleh disarangkan untuk membentuk struktur pernyataan if-elsif atau struktur pernyataan if berbilang lapisan untuk mencapai pertimbangan bersyarat yang lebih fleksibel. Menguasai penggunaan pernyataan if akan membantu membangunkan prosedur tersimpan Oracle yang cekap dan stabil.

Atas ialah kandungan terperinci oracle stored procedure if statement. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan