Oracle에서 저장 프로시저를 생성하고 실행하는 방법의 예
Oracle은 저장 프로시저를 비롯한 다양한 고급 기능을 갖춘 매우 강력한 데이터베이스 관리 시스템입니다. 저장 프로시저는 나중에 호출할 때 사용할 수 있도록 데이터베이스에 저장할 수 있는 데이터베이스 작업을 위해 미리 정의된 SQL 문 집합입니다.
Oracle에서는 저장 프로시저가 SQL과 프로그래밍을 결합한 언어인 PL/SQL로 작성됩니다. PL/SQL은 강력한 데이터 조작 기능과 프로세스 제어 기능을 갖추고 있으며 효율적인 저장 프로시저를 쉽게 작성할 수 있습니다.
저장 프로시저의 이점
저장 프로시저의 주요 이점은 데이터베이스의 실행 효율성을 높이고 네트워크 통신 오버헤드를 줄일 수 있다는 것입니다. 저장 프로시저가 미리 컴파일되고 최적화되었기 때문에 실행 중에 반복적으로 구문 분석하고 최적화할 필요가 없으며 실행을 위해 직접 호출할 수 있습니다. 또한 저장 프로시저에서는 매개변수를 통해 동적 작업을 구현할 수도 있으므로 코드가 단순화될 뿐만 아니라 SQL 삽입과 같은 위험도 방지됩니다.
저장 프로시저 생성 및 실행
다음은 Oracle에서 저장 프로시저를 생성하고 실행하는 방법을 설명합니다.
저장 프로시저 만들기
Oracle에서 저장 프로시저를 만들려면 CREATE PROCEDURE 문을 사용해야 합니다. 구문은 다음과 같습니다.
CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_name [IN | OUT | IN OUT] parameter_type [, ...])] [IS | AS] BEGIN pl/sql_code_block; END [procedure_name];
그 중:
- CREATE PROCEDURE: 저장 프로시저를 만드는 문입니다.
- OR REPLACE: 선택적 매개변수입니다. 이 매개변수를 지정하면 생성된 저장 프로시저가 이미 존재하는 경우 교체된다는 의미입니다.
- procedure_name: 저장 프로시저의 이름입니다.
- parameter_name: 저장 프로시저의 입력 및 출력을 지정하는 데 사용되는 선택적 입력 및/또는 출력 매개 변수입니다.
- parameter_type: 매개변수 유형으로, VARCHAR2, NUMBER와 같은 데이터 유형 또는 SYS_REFCURSOR와 같은 커서 유형일 수 있습니다.
- IS | AS: 저장 프로시저의 언어 유형을 지정하는 데 사용되는 선택적 매개변수입니다. IS는 시작(PL/SQL 블록)을 나타내고 AS는 끝(PL/SQL 블록)을 나타냅니다.
- pl/sql_code_block: 저장 프로시저의 특정 논리 구현이 포함된 PL/SQL 코드 블록입니다.
다음 예제 코드는 두 개의 매개 변수를 허용하고 해당 합계를 출력하는 간단한 저장 프로시저를 만드는 방법을 보여줍니다.
CREATE OR REPLACE PROCEDURE add_nums( num1 IN NUMBER, num2 IN NUMBER, sum OUT NUMBER ) IS BEGIN sum := num1 + num2; END add_nums;
저장 프로시저 실행
Oracle에서 저장 프로시저를 실행하려면 EXECUTE 또는 EXECUTE IMMEDIATE 문을 사용해야 합니다. . 예를 들어 위의 샘플 프로그램을 실행하려면 다음 명령문을 사용할 수 있습니다.
DECLARE result NUMBER; BEGIN add_nums(10, 20, result); DBMS_OUTPUT.PUT_LINE('The sum is: ' || result); END;
여기서는 DECLARE 문을 사용하여 사용해야 할 변수 결과를 선언하고 add_nums 저장 프로시저를 호출하여 그 결과를 화면에 출력합니다. .
매개변수 유형
저장 프로시저에서 매개변수는 입력 매개변수, 출력 매개변수 또는 양방향 매개변수일 수 있습니다.
- 입력 매개변수: 저장 프로시저의 입력을 지정합니다.
- 출력 매개변수: 저장 프로시저의 출력을 지정합니다.
- 양방향 매개변수: 입력 또는 출력이 가능합니다.
매개변수 유형 선언 방법은 다음과 같습니다.
(param_name [IN | OUT | IN OUT] param_type [, ...])
이 선언에서 [IN | OUT | IN OUT]은 매개변수 유형을 지정하는 데 사용되는 선택적 매개변수입니다. 매개변수 유형을 지정하지 않으면 기본적으로 IN 유형, 즉 입력 매개변수가 사용됩니다.
샘플 코드:
CREATE OR REPLACE PROCEDURE my_proc ( num IN NUMBER, str IN OUT VARCHAR2, cur OUT SYS_REFCURSOR ) IS BEGIN -- 逻辑实现 END my_proc;
위 코드에서는 세 개의 매개변수를 사용하여 저장 프로시저 my_proc를 선언했습니다. 첫 번째 매개변수 num은 입력 매개변수이고 두 번째 매개변수 str은 양방향 매개변수이며 세 번째 매개변수 cur는 출력 매개변수입니다.
레코드 세트 처리
저장 프로시저를 사용하여 데이터를 연산할 때 쿼리 결과 목록을 반환해야 하는 경우가 종종 있습니다. Oracle은 커서와 PL/SQL 테이블이라는 두 가지 유형의 레코드 세트를 제공합니다.
Cursor
커서는 쿼리 결과를 탐색할 수 있는 결과 집합을 반환하는 데이터 구조입니다. 커서는 명시적이거나 암시적일 수 있습니다. 명시적 커서는 커서 변수를 선언해야 하며 코드에서 이를 열고 닫는 것은 Oracle에서 자동으로 생성되고 관리됩니다.
다음은 커서 사용 방법을 보여주는 저장 프로시저입니다.
CREATE OR REPLACE PROCEDURE get_employee( id_list IN VARCHAR2, emp_cur OUT SYS_REFCURSOR ) IS BEGIN OPEN emp_cur FOR 'SELECT * FROM employees WHERE id IN (' || id_list || ')'; END get_employee;
이 예에서는 쉼표로 구분된 직원 ID 목록을 입력 매개변수로 받아들이고 커서 emp_cur를 반환하는 두 개의 매개변수를 사용하여 저장 프로시저 get_employee를 선언합니다. 선택한 직원 정보가 포함되어 있습니다.
PL/SQL 테이블
PL/SQL 테이블은 일련의 값을 저장할 수 있는 배열과 유사한 데이터 구조입니다. PL/SQL 테이블에는 일련의 데이터를 저장 프로시저에 전달하는 등 저장 프로시저에 많은 실제 응용 프로그램이 있습니다.
Oracle에서는 다음 코드와 같은 저장 프로시저에서 PL/SQL 테이블을 선언하고 사용할 수 있습니다.
CREATE OR REPLACE PACKAGE my_package IS TYPE num_list IS TABLE OF NUMBER INDEX BY PLS_INTEGER; PROCEDURE sum_nums(nums IN num_list, sum OUT NUMBER); END my_package; CREATE OR REPLACE PACKAGE BODY my_package IS PROCEDURE sum_nums(nums IN num_list, sum OUT NUMBER) IS total NUMBER := 0; BEGIN FOR indx IN 1 .. nums.COUNT LOOP total := total + nums(indx); END LOOP; sum := total; END sum_nums; END my_package;
여기에서는 num_list라는 PL/SQL을 선언하는 my_package라는 패키지를 만들었습니다. 해당 유형을 사용하는 저장 프로시저 sum_nums입니다. sum_nums는 num_list 유형의 인수를 받아들이고 해당 합계를 계산합니다.
결론
오라클에서 저장 프로시저는 효율적인 실행 기능과 역동성을 갖춘 중요한 도구 중 하나입니다. 또한 저장 프로시저를 사용하여 단일 SQL 문을 실행하는 대신 일부 비즈니스 논리를 실행할 수 있으므로 재사용성과 유지 관리성이 향상됩니다. 데이터베이스에 저장되고 여러 애플리케이션이나 프로세스에서 공유 및 액세스될 수 있기 때문입니다. 저장 프로시저를 사용하면 많은 이점이 있어 짧은 글로 모두 다루기는 어렵지만, 깊이 있게 이해하고 적용한다면 실제 업무에서 많은 이점을 얻을 수 있을 것이라 믿습니다.
위 내용은 Oracle에서 저장 프로시저를 생성하고 실행하는 방법의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사에서는 행 별 데이터 처리를위한 PL/SQL 커서를 설명합니다. Cursor 선언, 개방, 가져 오기 및 폐쇄, 암시 적, 명시 적 및 참조 커서를 비교합니다. 효율적인 대형 데이터 세트 처리 및 루프 사용 기술

이 기사에서는 Oracle 데이터베이스 세그먼트 유형 (데이터, 인덱스, 롤백, 임시), 성능 영향 및 관리를 검토합니다. 최적의 효율성을위한 워크로드 및 데이터 특성을 기반으로 적절한 세그먼트 유형을 선택하는 것을 강조합니다.

이 기사는 Oracle 데이터베이스 성능 테스트 도구를 살펴 봅니다. 예산, 복잡성 및 모니터링, 진단, 워크로드 시뮬레이션 및보고와 같은 기능을 기반으로 올바른 도구 선택에 대해 논의합니다. 이 기사는 또한 효과적인 BO에 대해 자세히 설명합니다

이 기사는 전체 서버 설치없이 Oracle 데이터베이스와 상호 작용하는 데 필수적인 Oracle Database 클라이언트 도구를 살펴 봅니다. SQL*Plus, SQL Developer, Enterprise Manager 및 RMAN과 같은 일반적으로 사용되는 도구에 대해 자세히 설명합니다.

이 기사에서는 Oracle의 기본 테이블 스페이스 (시스템, sysaux, 사용자), 특성, 식별 방법 및 성능 영향을 검토합니다. 그것은 불이행에 의존하는 것에 반대하고, 별도의 테이블 스팩을 만드는 것의 중요성을 강조합니다.

이 기사는 SQL 명령을 사용하여 Oracle에서 사용자 및 역할을 만드는 방법을 설명하고 최소 특권의 원칙 및 정기 감사에 따라 역할 사용을 포함하여 사용자 권한을 관리하는 모범 사례에 대해 설명합니다.

이 기사는 Oracle 데이터베이스를 다운로드하여 사용자를 안내합니다. 에디션 선택 (Express, Standard, Enterprise), 플랫폼 호환성 및 라이센스 계약 수락을 강조하는 프로세스를 자세히 설명합니다. 시스템 요구 사항 및 에디션 Suitabil

이 기사는 민감한 데이터를 보호하기위한 솔루션 인 Oracle Data Masking 및 Subsetting (DMS)에 대해 자세히 설명합니다. 민감한 데이터 식별, 마스킹 규칙 정의 (셔플 링, 대체, 무작위), 작업 설정, 모니터링 및 배포가 포함됩니다.
