在 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;
解决方案:
测试代码前提是已成功创建并初始化存储过程。但是,问题出在最后一行,它尝试调用过程但失败。
在 SQL*Plus 中调用存储过程的方法有以下三种:
CALL test_sp_1();
BEGIN test_sp_1; END; /
EXEC test_sp_1
示例:
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中文网其他相关文章!