>데이터 베이스 >MySQL 튜토리얼 >하나의 Oracle 저장 프로시저가 다른 프로시저를 호출할 수 있습니까?

하나의 Oracle 저장 프로시저가 다른 프로시저를 호출할 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-25 04:15:09960검색

Can One Oracle Stored Procedure Call Another?

Oracle의 Another 내에서 저장 프로시저 호출

문제:

다음이 가능합니다. 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에서 저장 프로시저를 호출하는 세 가지 방법이 있습니다.

  1. CALL: 괄호가 필요합니다. 인수.
CALL test_sp_1();
  1. 익명 PL/SQL 블록: 코드의 인라인 실행을 허용합니다.
BEGIN
    test_sp_1;
END;
/
  1. EXEC: EXEC의 바로가기인 SQL*Plus 명령입니다. 익명 블록.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.