首頁 >資料庫 >mysql教程 >一個 Oracle 預存程序可以呼叫另一個預存程序嗎?

一個 Oracle 預存程序可以呼叫另一個預存程序嗎?

Linda Hamilton
Linda Hamilton原創
2024-12-25 04:15:09960瀏覽

Can One Oracle Stored Procedure Call Another?

在Oracle 中呼叫另一個預存程序

問題:

問題:

可以從Oracle 中的另一個預存程序呼叫預存程序?如果是這樣,如何實現這一點?

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;

範例程式碼:

解決方案:

    測試程式碼前提是已成功建立並初始化儲存程序。但是,問題出在最後一行,它嘗試呼叫過程但失敗。
  1. 在SQL*Plus 中呼叫預存程序的方法有以下三種:
CALL test_sp_1();
CALL:
    需要括號,即使對於沒有括號的過程也是如此參數。
BEGIN
    test_sp_1;
END;
/
匿名 PL/SQL 區塊:
    允許內聯執行程式碼。
EXEC test_sp_1
EXEC:

一個 SQL*Plus 指令,是匿名的捷徑區塊。

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.
範例:

以上是一個 Oracle 預存程序可以呼叫另一個預存程序嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn