>  기사  >  데이터 베이스  >  오라클 저장 프로시저 반환 값

오라클 저장 프로시저 반환 값

WBOY
WBOY원래의
2023-05-07 22:44:362146검색

Oracle 저장 프로시저는 단일 코드 블록에서 일련의 SQL 문을 반복적으로 실행하는 쿼리 언어입니다. 저장 프로시저의 장점은 작성 및 테스트된 SQL 코드를 재사용할 수 있고, SQL 문의 작성 프로세스를 단순화하며, 코드의 실행 효율성을 향상시킬 수 있다는 것입니다. 하지만 때로는 저장 프로시저에서 특정 값이나 결과를 가져와야 하는 경우도 있습니다. 이를 위해서는 저장 프로시저의 반환 값을 사용해야 합니다.

저장 프로시저의 반환 값은 숫자 값, 문자열, 날짜 또는 부울 값일 수 있습니다. 저장 프로시저의 반환 값은 코드를 더 쉽게 사용하고, 읽고, 재사용할 수 있도록 도와줍니다.

Oracle 저장 프로시저의 반환 값에는 함수처럼 명확한 반환 값 유형이 없습니다. 따라서 저장 프로시저에서는 OUT 또는 IN OUT 매개변수를 통해 이를 호출하는 프로그램에 값을 전달해야 합니다.

Oracle에서는 OUT 또는 IN OUT 매개변수를 통해 저장 프로시저의 반환 값을 반환할 수 있습니다. OUT 또는 IN OUT 매개변수를 사용하면 저장 프로시저가 결과 값을 반환하거나 입력 매개변수 값을 저장 프로시저에 전달하고 저장 프로시저와 호출 프로그램이 이러한 값과 상호 작용할 수 있습니다.

다음은 두 값의 곱을 출력하는 간단한 저장 프로시저입니다.

CREATE OR REPLACE PROCEDURE SP_MULTIPLY (input1 IN NUMBER, input2 IN NUMBER, result OUT NUMBER)
AS
BEGIN
   result := input1 * input2;
END;

이 저장 프로시저에서는 두 개의 입력 매개변수 input1과 input2를 허용하고 그 결과를 결과 변수에 저장합니다. 이 변수는 OUT 매개변수로 반환됩니다.

저장 프로시저는 다음과 같이 호출됩니다.

DECLARE
   output NUMBER;
BEGIN
   SP_MULTIPLY(5, 10, output);
   DBMS_OUTPUT.PUT_LINE('The product is ' || output);
END;

저장 프로시저를 호출할 때 변수 출력을 선언하고 이를 저장 프로시저 SP_MULTIPLY에 OUT 매개변수로 전달하고 결과를 저장해야 합니다. 저장 프로시저가 반환된 후 DBMS_OUTPUT.PUT_LINE을 호출하여 결과를 출력할 수 있습니다.

저장 프로시저에서는 OUT 매개 변수 외에도 IN OUT 매개 변수를 사용하여 저장 프로시저와 호출 프로그램 간에 데이터를 교환할 수 있습니다. 예를 들어, 아래 저장 프로시저에서는 숫자 값을 입력으로 받아들이고 이를 기존 숫자 값에 추가한 다음 매개변수 OUT에 저장하여 결과를 반환합니다.

CREATE OR REPLACE PROCEDURE SP_ADD (input IN NUMBER, result IN OUT NUMBER)
AS
BEGIN
   result := result + input;
END;

이 저장 프로시저를 호출하는 방법은 다음과 같습니다.

DECLARE
   output NUMBER := 10;
BEGIN
   SP_ADD(5, output);
   DBMS_OUTPUT.PUT_LINE('The result is ' || output);
END;

저장 프로시저를 호출하는 동안 숫자 값을 입력으로 전달하고 다른 숫자 변수 출력도 IN OUT 매개 변수로 전달합니다. 저장 프로시저가 실행된 후 결과 변수에는 최종 결과가 포함됩니다.

요약하자면 저장 프로시저의 반환 값은 OUT 또는 IN OUT 매개 변수를 통해 반환될 수 있습니다. OUT 또는 IN OUT 매개변수를 사용하면 저장 프로시저가 결과 값을 반환하거나 입력 매개변수 값을 저장 프로시저에 전달하고 저장 프로시저와 호출 프로그램이 이러한 값과 상호 작용할 수 있습니다. 저장 프로시저를 작성할 때 저장 프로시저의 반환 값을 올바르게 사용하려면 매개 변수의 유형과 전달 방법에 특별한 주의를 기울여야 합니다.

위 내용은 오라클 저장 프로시저 반환 값의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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