Rumah >pangkalan data >tutorial mysql >Bolehkah Satu Oracle Stored Procedure memanggil yang lain?

Bolehkah Satu Oracle Stored Procedure memanggil yang lain?

Linda Hamilton
Linda Hamiltonasal
2024-12-25 04:15:09960semak imbas

Can One Oracle Stored Procedure Call Another?

Memanggil Prosedur Tersimpan Dalam Satu Lagi dalam Oracle

Masalah:

Adalah mungkin untuk panggil prosedur tersimpan dari dalam satu lagi dalam Oracle? Jika ya, bagaimanakah anda boleh mencapai ini?

Kod Contoh:

SET SERVEROUTPUT ON;

DROP PROCEDURE test_sp_1;
DROP PROCEDURE test_sp;

CREATE PROCEDURE test_sp
AS
BEGIN
    DBMS_OUTPUT.PUT_LINE('Test works');
END;
/

CREATE PROCEDURE test_sp_1
AS
BEGIN
    DBMS_OUTPUT.PUT_LINE('Testing');
    test_sp;
END;
/

CALL test_sp_1;

Penyelesaian:

Kod ujian dengan syarat berjaya mencipta dan memulakan prosedur yang disimpan. Walau bagaimanapun, isunya terletak pada baris terakhir, yang cuba menggunakan prosedur tetapi gagal.

Terdapat tiga cara untuk menggunakan prosedur tersimpan dalam SQL*Plus:

  1. CALL: Memerlukan kurungan, walaupun untuk prosedur tanpa argumen.
CALL test_sp_1();
  1. Blok PL/SQL Tanpa Nama: Membenarkan pelaksanaan sebaris kod.
BEGIN
    test_sp_1;
END;
/
  1. EXEC: Perintah SQL*Plus yang merupakan pintasan untuk blok tanpa nama.
EXEC test_sp_1

Contoh:

SQL> CALL test_sp_1();
Testing
Test works

Call completed.

SQL> EXEC test_sp_1
Testing
Test works

PL/SQL procedure successfully completed.

SQL> BEGIN
  2      test_sp_1;
  3  END;
  4  /
Testing
Test works

PL/SQL procedure successfully completed.

Atas ialah kandungan terperinci Bolehkah Satu Oracle Stored Procedure memanggil yang lain?. 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