>운영 및 유지보수 >리눅스 운영 및 유지 관리 >Oracle이 PL/SQL을 사용하는 방법

Oracle이 PL/SQL을 사용하는 방법

PHPz
PHPz원래의
2023-04-17 10:29:49926검색

PL/SQL은 Oracle 데이터베이스의 프로그래밍 언어이며 저장 프로시저, 트리거, 함수, 패키지 등을 만드는 데 사용할 수 있습니다. 이 기사에서는 Oracle이 PL/SQL을 사용하는 방법을 소개합니다.

1. 저장 프로시저 만들기

저장 프로시저는 SQL 문의 집합입니다. 저장 프로시저를 사용하면 복잡한 SQL 쿼리를 단순화하고 데이터베이스 성능을 향상시킬 수 있습니다.

Oracle에서 저장 프로시저를 생성하는 구문은 다음과 같습니다.

CREATE OR REPLACE PROCEDURE procedure_name
(parameter1 datatype, parameter2 datatype,....)
IS
BEGIN
   statement1;
   statement2;
   ...
END;
/

여기서 CREATE OR REPLACE PROCEDURE는 저장 프로시저 생성 또는 교체를 나타내고, Procedure_name은 저장 프로시저의 이름을 나타내며, 매개변수 1과 매개변수 2는 입력 매개변수, 데이터 유형은 다음과 같습니다. 매개변수의 데이터 유형을 나타냅니다. IS와 BEGIN 사이에는 일련의 SQL 문이 포함된 저장 프로시저의 주요 부분이 있습니다. END는 저장 프로시저의 끝을 나타냅니다.

다음은 두 숫자의 합을 계산하는 간단한 저장 프로시저의 예입니다.

CREATE OR REPLACE PROCEDURE addition
(num1 IN NUMBER, num2 IN NUMBER, sum OUT NUMBER)
IS
BEGIN
  sum := num1 + num2;
END;
/

위 예에서 더하기는 저장 프로시저의 이름이고, num1과 num2는 두 개의 입력 매개변수이고, sum은 출력 매개변수입니다. 저장 프로시저의 주요 부분에서 sum := num1 + num2; 문을 사용하여 두 숫자의 합을 계산하고 그 결과를 출력 매개변수 sum에 할당합니다.

2. 트리거 만들기

트리거는 데이터베이스에서 자동으로 실행되는 프로그램으로, 데이터베이스에서 다양한 작업(예: 데이터 삽입, 업데이트, 삭제)이 발생할 때 이벤트를 트리거하는 데 사용할 수 있습니다. 트리거는 데이터 감사 및 로깅에 자주 사용됩니다.

Oracle에서 트리거를 생성하는 구문은 다음과 같습니다.

CREATE OR REPLACE TRIGGER trigger_name
BEFORE/AFTER INSERT/UPDATE/DELETE
ON table_name
FOR EACH ROW
BEGIN
   statement1;
   statement2;
   ...
END;
/

그 중 CREATE OR REPLACE TRIGGER는 트리거 생성 또는 교체를 나타내며, Trigger_name은 트리거 이름, BEFORE/AFTER는 트리거 시간, INSERT를 나타냅니다. /UPDATE/DELETE는 캐릭터의 작업에 대한 트리거링을 나타내며, table_name은 트리거에 해당하는 테이블을 나타내고, FOR EACH ROW는 트리거의 명령문이 데이터의 각 행에 대해 실행됨을 나타냅니다.

다음은 데이터가 삽입될 때 삽입 시간을 기록하는 간단한 트리거 예입니다.

CREATE OR REPLACE TRIGGER insert_time
BEFORE INSERT
ON customer
FOR EACH ROW
BEGIN
  :new.created_at := sysdate;
END;
/

위 예에서 insert_time은 트리거 이름이고, BEFORE INSERT는 데이터를 삽입하기 전에 트리거를 실행한다는 의미이며, customer는 Trigger 장치에 해당하는 테이블 이름입니다. 트리거의 주요 부분에서 new.created_at := sysdate; 문을 사용하여 삽입된 데이터의 Created_at 필드에 현재 시간을 할당합니다.

3. 함수 만들기

함수는 0개 이상의 매개변수를 입력으로 받아들이고 값을 출력으로 반환할 수 있는 반환 값이 있는 PL/SQL 프로그램 단위입니다. 함수를 사용하면 로직의 일부를 캡슐화하여 코드를 더 읽기 쉽고 유지 관리하기 쉽게 만들 수 있습니다.

오라클에서 함수를 생성하는 구문은 다음과 같습니다.

CREATE OR REPLACE FUNCTION function_name
(return_type IN OUT datatype,
parameter1 datatype, parameter2 datatype,....)
RETURN return_datatype
IS
BEGIN
  statement1;
  statement2;
  ...
  RETURN return_value;
END;
/

그 중 CREATE OR REPLACE FUNCTION은 함수 생성 또는 교체를 나타내고, function_name은 함수 이름을 나타내고, return_type은 반환 값의 유형을 나타내고, 매개변수1은 및 매개변수2는 입력 매개변수이고, 데이터 유형은 매개변수를 나타냅니다. RETURN return_datatype의 데이터 유형은 반환 값의 데이터 유형을 나타냅니다. 함수 본문에서 RETURN return_value 문을 사용하여 계산 결과를 호출자에게 반환합니다.

다음은 두 숫자의 곱을 계산하는 간단한 함수 예입니다.

CREATE OR REPLACE FUNCTION multiplication(x IN NUMBER, y IN NUMBER)
RETURN NUMBER
IS
BEGIN
  RETURN x * y;
END;
/

위 예에서 곱셈은 함수의 이름이고 x와 y는 두 개의 입력 매개변수이며 RETURN NUMBER는 다음의 데이터 유형을 나타냅니다. 반환 값은 NUMBER이고 반환 값은 x*y의 결과입니다.

4. 패키지 만들기

패키지는 PL/SQL 프로그램 단위 집합을 저장하는 프로그램 모듈로, 함수, 저장 프로시저, 변수, 상수 등 관련 프로그램 단위를 패키지로 캡슐화할 수 있습니다. 패키지를 사용하면 프로그램을 더 읽기 쉽고 유지 관리하기 쉽게 만들 수 있습니다.

오라클에서 패키지를 생성하는 구문은 다음과 같습니다.

CREATE OR REPLACE PACKAGE package_name
IS
  /* 声明变量、常量和异常 */
  ...
  /* 声明存储过程和函数 */
  PROCEDURE procedure_name;
  FUNCTION function_name RETURN NUMBER;
END;
/

CREATE OR REPLACE PACKAGE BODY package_name
IS
  /* 实现存储过程和函数 */
  PROCEDURE procedure_name
  IS
  BEGIN
    /* 存储过程的逻辑处理 */
  END;
  FUNCTION function_name
  RETURN NUMBER
  IS
  BEGIN
    /* 函数的逻辑处理 */
    RETURN 0;
  END;
END;
/

그 중 CREATE OR REPLACE PACKAGE는 패키지를 생성하거나 교체한다는 의미, package_name은 패키지 이름, IS는 패키지의 선언 부분, END CREATE OR REPLACE PACKAGE BODY는 패키지의 끝을 의미하고, CREATE OR REPLACE PACKAGE BODY는 패키지 본문의 생성 또는 교체를 의미하며, package_name은 패키지의 이름을 의미합니다.

위는 Oracle이 PL/SQL을 사용하는 방법에 대한 간략한 소개입니다. PL/SQL을 통해 저장 프로시저, 트리거, 함수 및 패키지와 같은 프로그램 단위를 생성하여 데이터베이스 작업 및 논리적 처리를 구현할 수 있습니다.

위 내용은 Oracle이 PL/SQL을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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