>데이터 베이스 >Oracle >오라클 저장 프로시저 예시

오라클 저장 프로시저 예시

PHPz
PHPz원래의
2023-05-18 09:30:071053검색

Oracle 데이터베이스에서 저장 프로시저는 입력 매개변수를 허용하고 출력 매개변수를 반환할 수 있는 반복 가능한 SQL 코드 블록입니다. 저장 프로시저를 데이터베이스에서 호출하고 실행할 수 있다는 점을 제외하면 함수와 유사하므로 더 복잡하고 확장 가능한 애플리케이션이 가능합니다. 이 문서에서는 간단한 Oracle 저장 프로시저를 작성하는 방법을 소개하고 실제 애플리케이션에서 저장 프로시저를 사용하는 방법을 보여줍니다.

저장 프로시저 생성

Oracle에서 저장 프로시저를 생성하려면 다음 단계가 필요합니다.

  1. 저장 프로시저 구조 생성

저장 프로시저 구조에는 프로시저 이름, 입력 매개 변수, 출력 매개 변수 정의가 포함됩니다. 그리고 절차 본체. 다음은 간단한 Oracle 저장 프로시저 구조의 예입니다.

CREATE OR REPLACE PROCEDURE get_employee_salaries (id IN NUMBER, 급여 OUT NUMBER)
IS
BEGIN
SELECT 급여 INTO 급여 FROM 직원 WHERE Employee_id = id;
END;

at 위의 예에서 get_employee_salaries는 프로세스의 이름이고, id는 입력 매개변수이고, 급여는 출력 매개변수입니다.

  1. 프로시저 본문 작성

프로시저 본문은 저장 프로시저 내부의 실제 논리입니다. 이 예에서 프로세스 본문은 입력 매개변수 id를 사용하여 직원 테이블에서 급여를 쿼리한 다음 출력 매개변수 급여에 결과를 저장합니다.

  1. 저장 프로시저 컴파일

저장 프로시저를 생성하는 SQL 코드가 데이터베이스에 기록된 후 코드를 컴파일해야 합니다. Oracle에서는 다음 명령을 통해 수행할 수 있습니다.

SQL> CREATE OR REPLACE PROCEDURE get_employee_salaries (id IN NUMBER, 급여 OUT NUMBER)
IS
BEGIN
SELECT 급여 INTO 급여 WHERE 직원 ID = id;
END;

이 명령은 get_employee_salaries라는 저장 프로시저를 생성합니다.

저장 프로시저 사용 방법

저장 프로시저가 생성되면 응용 프로그램에서 필요할 때 호출하여 사용할 수 있습니다. 다음은 위 예에서 저장 프로시저를 호출하는 방법에 대한 예입니다.

DECLARE

emp_salary NUMBER;
BEGIN
get_employee_salaries(100, emp_salary);
DBMS_OUTPUT.PUT_LINE('Employee 100 Ears ' || TO_CHAR(emp_salary)) ;
END ;

이 코드는 id 입력 매개변수로 100을 사용하여 get_employee_salaries 저장 프로시저를 호출합니다. 결과를 emp_salary에 저장한 다음 출력에 표시합니다. 성공적으로 실행되면 출력은 다음과 유사합니다.

Employee 100은 4400을 얻습니다.

이 예는 간단한 Oracle 저장 프로시저의 예를 보여줍니다. 실제로 저장 프로시저는 많은 복잡한 작업을 수행하고 데이터베이스에서 확장성과 반복성을 달성할 수 있습니다. 예를 들어 저장 프로시저를 사용하여 복잡한 데이터 변환, 데이터 정리, 보고서 생성, 비즈니스 프로세스 자동화 및 기타 작업을 구현할 수 있습니다.

요약

Oracle 저장 프로시저는 데이터베이스 애플리케이션을 더욱 유연하고 확장 가능하며 효율적으로 만들 수 있는 매우 강력하고 유용한 도구입니다. 이 문서에서는 간단한 Oracle 저장 프로시저를 만들고 사용하는 방법을 보여줍니다. 실제로 저장 프로시저는 더 복잡한 작업을 수행하고 데이터베이스 응용 프로그램에 강력한 기능을 제공할 수 있습니다. 따라서 Oracle 저장 프로시저를 배우고 마스터하는 것은 모든 데이터베이스 개발자가 마스터해야 하는 기술 중 하나입니다.

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

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