>  기사  >  데이터 베이스  >  Oracle의 저장 프로시저 구문을 소개하는 기사

Oracle의 저장 프로시저 구문을 소개하는 기사

PHPz
PHPz원래의
2023-04-04 10:39:501780검색

Oracle은 강력한 저장 프로시저 기능을 갖춘 관계형 데이터베이스 관리 시스템입니다. 개발자로서 저장 프로시저의 구문을 숙지해야만 비즈니스 요구 사항에 따라 효율적이고 간단하며 안전한 데이터베이스 운영을 달성할 수 있습니다. 이 문서에서는 Oracle의 저장 프로시저 구문을 소개합니다.

1. 저장 프로시저 소개

오라클에서 저장 프로시저는 PL/SQL 언어로 작성된 일련의 SQL 문 및 제어 구조인 데이터베이스 개체입니다. 여러 SQL 문을 캡슐화하는 재사용 가능한 프로그램으로, 복잡한 비즈니스 로직을 구현하고 데이터베이스 운영 효율성을 크게 향상시킬 수 있습니다.

저장 프로시저에는 다음과 같은 특징이 있습니다.

  1. 입력 매개변수를 수신하고 출력 매개변수를 반환할 수도 있습니다.
  2. 한 트랜잭션에서 여러 SQL 문을 실행할 수 있습니다.
  3. Oracle 서버에 저장되며 여러 애플리케이션에서 공유할 수 있습니다
  4. 호출 시 실행되거나 사전 컴파일 후에 실행될 수 있습니다

2. 저장 프로시저 생성 및 실행

오라클에서 저장 프로시저를 생성하려면 CREATE PROCEDURE 문을 사용해야 합니다. 구문은 다음과 같습니다.

CREATE. [OR REPLACE] PROCEDURE 프로시저_이름
[(매개변수1 [IN | OUT | IN OUT] type1, [매개변수2 [IN | OUT | IN OUT] type2,...])]
IS
--변수 선언
BEGIN
-- SQL 문 실행
END;

그 중

  1. OR REPLACE는 저장 프로시저가 이미 있으면 이를 교체하고 생성하고, 그렇지 않으면 직접 새로운 저장 프로시저를 생성한다는 의미입니다.
  2. procedure_name은 저장 프로시저의 이름을 나타냅니다.
  3. 매개변수는 저장 프로시저의 입력 또는 출력 매개변수를 나타내며, 여러 개가 있을 수 있습니다.
  4. type은 VARCHAR2, NUMBER, DATE 등을 포함한 매개변수 유형을 나타냅니다.
  5. IS는 저장 프로세스가 공식적으로 실행을 시작했음을 나타냅니다.
  6. BEGIN과 END 사이는 SQL 문 또는 PL/SQL 코드일 수 있는 저장 프로시저의 주요 부분입니다.

예를 들어 다음은 간단한 저장 프로시저입니다.

CREATE OR REPLACE PROCEDURE HelloWorld
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello, World!');
END;

EXECUTE 또는 저장 프로시저를 실행하는 EXEC 문, 구문은 다음과 같습니다.

EXECUTE 프로시저_이름;

또는:

EXEC 프로시져_이름;

예:

EXECUTE HelloWorld;

또는:

EXEC HelloWorld;

3 . 저장 프로시저의 변수 및 제어 구조

저장 프로시저에서는 변수 및 제어 구조를 사용하여 보다 복잡한 비즈니스 로직을 구현할 수 있습니다.

  1. Variables

Oracle의 변수에는 다음과 같은 유형이 있습니다.

  • CHAR 및 VARCHAR2: 문자와 문자열을 저장하는 데 사용됩니다.
  • NUMBER: 숫자 유형을 저장하는 데 사용됩니다.
  • DATE: 날짜 및 시간 유형을 저장하는 데 사용됩니다.

변수 선언 구문은 다음과 같습니다.

DECLARE
variable_name Variable_type [NOT NULL] [:= value];

예:

DECLARE
v_emp_id NUMBER := 1001;
v_emp_name VARCHAR2(20): = 'John' ;
v_salary NUMBER(6,2);

  1. 제어 구조

오라클은 IF, CASE, LOOP 등을 포함한 다양한 제어 구조를 지원합니다.

IF 문은 조건에 따라 다양한 작업을 수행하는 데 사용됩니다. 구문은 다음과 같습니다.

IF 조건 THEN
문;
[ELSIF 조건 THEN
문;]
[ELSE
문;]
END IF;

예:

IF v_salary > 5000 THEN
v_bonus := v_salary * 0.1;
ELSIF v_salary > 3000 THEN
v_bonus := v_salary * 0.05;
ELSE
v_bonus := 0;
END IF;

CASE 문 다양한 연산을 수행하기 위해 표현식의 다양한 값을 기반으로 사용되며 구문은 다음과 같습니다.

CASE 표현식
WHEN value1 THEN
문;
WHEN value2 THEN
문;
...
[ELSE
문 ;]
END CASE;

예:

CASE v_grade
WHEN 'A' THEN
v_gpa := 4.0;
WHEN 'B' THEN
v_gpa := 3.0;
ELSE
v_gpa := 2.0;
END CASE ;

LOOP 문은 특정 Some 작업을 반복적으로 실행하는 데 사용되며 구문은 다음과 같습니다.

LOOP
문;
[EXIT | EXIT WHEN v_salary = 0;
END LOOP;

4. Oracle에서는 PL/SQL 코드 또는 SQL 문을 사용하여 저장 프로시저를 호출할 수 있습니다. 예:

PL/SQL 코드 호출:


DECLARE

v_emp_name VARCHAR2(20);

BEGIN

GET_EMPLOYEE_NAME(1001, v_emp_name);

DBMS_OUTPUT.PUT_LINE('직원 이름은 ' || v_emp_name) ;

END ;
  1. SQL 문 호출:


SQL> VARIABLE v_emp_name VARCHAR2(20);
SQL> 이 기사의 소개를 통해 저장 프로시저의 생성 및 실행, 변수 사용을 포함한 Oracle의 저장 프로시저 구문을 이해합니다. 제어 구조, 저장 프로시저 호출 등이 있습니다. 개발자로서 이러한 구문을 익히면 데이터베이스 작업의 효율성을 크게 향상시킬 수 있습니다.

위 내용은 Oracle의 저장 프로시저 구문을 소개하는 기사의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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