Oracle 스토리지 프로세스 및 패키지
만약에 응용 프로그램에서 특정한 조작을 자주 수행해야 한다면 이러한 조작 이력서를 바탕으로 특정한 과정을 수행할 수 있다.사용 과정을 통해 클라이언트 프로그램의 개발과 유지보수를 간소화할 수 있을 뿐만 아니라 클라이언트 프로그램의 운행 성능도 향상시킬 수 있다.
2. 과정의 장점은?
1. 사전 컴파일링: 저장 과정은 데이터베이스에 미리 컴파일하여 컴파일하는 데 걸리는 시간을 줄인다.
2. 캐시: 미리 컴파일된 저장 프로세스가 캐시에 들어가기 때문에 자주 실행하는 저장 프로세스에 대해 첫 번째 실행을 제외하고 다른 횟수의 실행 속도가 현저히 높아진다.
3. 네트워크 전송 감소: 특히 일부 처리 데이터의 저장 과정에 대해 SQL 문장을 직접 사용하는 것처럼 데이터를 클라이언트에게 여러 번 전송할 필요가 없다.
4. 서비스 용이성: 저장 프로세스를 업데이트하는 것은 일반적으로 응용 프로그램을 변경하고 테스트하며 배치하는 것보다 시간과 정력이 적다.
5. 코드의 재사용: 재사용 가능한 저장 프로세스는 응용 프로그램의 여러 위치에 적용될 수 있다.
6. 보안 강화: 사용자에게 저장 프로세스에 대한 접근 권한을 부여함으로써 특정한 데이터에 대한 접근을 제공할 수 있다.데이터 보안을 강화하여 SQL 유입을 방지합니다.
3. 단점:
1. 저장 프로세스의 입력과 출력 매개 변수를 변경해야 한다면 프로그램도 변경해야 한다.
2. 이식성이 떨어진다. 저장 프로세스는 응용 프로그램의 업무 처리를 데이터베이스에 귀속시키기 때문에 저장 프로세스를 사용하여 업무 논리를 처리하여 응용 프로그램의 이식성을 제한한다.
4. 저장 프로세스 생성
--1、
create or replace procedure procedure_test
(p_id in varchar,p_status out varchar) --p_id ,p_status
as
t_name varchar2(20);
t_count number:=0;
begin
select votetitle,vatesum into t_name,t_count from votemaster where id=p_id; -- : :
if t_count <=0 then
p_status:= t_name||': ';
elsif t_count >0 and t_count <3 then
p_status:= t_name||': ';
else
p_status:= t_name||': ';
end if;
end;
--
declare
out_param varchar2(50);
begin
procedure_test('1',out_param);
dbms_output.put_line(out_param);
end;
--2、
create or replace procedure procedure_cursor_test
(p_id in varchar2,p_status out varchar2)
as
vote votemaster%rowtype; -- (votemaster)
cursor my_cur is select * from votemaster; --
begin
open my_cur; --
loop
fetch my_cur into vote ; -- ,
exit when my_cur%notfound; -- , exit
if vote.id=p_id then
p_status := vote.votetitle||':'||vote.vatesum;
-- , exit;
end if;
end loop;
close my_cur; --
end;
--
declare
out_param varchar2(50);
begin
procedure_cursor_test('1',out_param);
dbms_output.put_line(out_param);
end;
5. 패키지
1. 패키지: 패키지는 관련 과정, 함수, 변수, 커서, 상수 등 PL/SQL 프로그램 설계 요소의 조합이다.이것은 대상을 대상으로 하는 프로그램 설계 언어의 특징을 가지고 이러한 PL/SQL 프로그램 설계 요소를 봉인한다.패키지는 C++나 자바 프로그램의 클래스와 유사하지만 변수는 클래스의 구성원 변수에 해당하고 과정과 함수는 방법에 해당하며 관련 모듈을 패키지로 분류하여 개발자가 대상을 대상으로 하는 방법을 이용하여 저장 프로세스를 개발하여 시스템 성능을 향상시킬 수 있다.클래스와 마찬가지로 패키지의 프로그램 요소도 공용 요소와 사유 요소 두 가지로 나뉘는데 이 두 가지 요소의 차이는 그들이 접근할 수 있는 프로그램의 범위가 다르다는 것이다. 즉, 그들의 역할 영역이 다르다는 것이다.공용 요소는 가방의 함수, 프로세스에 호출될 수 있을 뿐만 아니라 가방 밖의 PL/SQl 블록에도 호출될 수 있다.사유 요소는 이 가방 내부의 함수나 과정에서만 호출될 수 있다.
2. 패키지를 사용하는 장점: PL/SQL 디자인에서 패키지를 사용하면 프로그램을 모듈화하고 패키지 안에 사용된 정보를 대외적으로 숨길 수 있을 뿐만 아니라 패키지를 쓰면 프로그램의 운영 효율을 높일 수 있다.프로그램이 처음으로 패키지 내부의 함수나 과정을 호출할 때, Oracle은 전체 패키지를 메모리로 불러오고, 패키지의 요소를 다시 호출할 때, Oracle은 디스크의 IO 작업을 하지 않고 메모리에서 직접 읽어서 프로그램의 실행 효율을 높일 수 있기 때문이다.
3. 하나의 패키지는 두 부분으로 구성된다.
(1) 패키지 정의: 패키지 정의 부분은 패키지 내의 데이터 유형, 변수, 상수, 커서, 서브루틴과 함수 등 요소를 설명하고 이런 요소는 패키지의 공유 요소이다.
(2) 가방 주체: 가방 주제는 가방 정의 부분의 구체적인 실현을 정의했고 가방 주체에서 사유 요소를 성명하고 실현할 수 있다.
--
create or replace package t_package
is
--
procedure append_proc(t varchar2,a out varchar2);
--
procedure append_proc(t number,a out varchar2);
--
function append_fun(t varchar2) return varchar2;
end;
--
create or replace package body t_package
is
v_t varchar2(30);
--
function private_fun(t varchar2) return varchar2 is
begin
v_t := t||'hello';
return v_t;
end;
--
procedure append_proc(t varchar2,a out varchar2) is
begin
a := t||'hello';
end;
--
procedure append_proc(t number,a out varchar2) is
begin
a := t||'hello';
end;
--
function append_fun(t varchar2)
return varchar2 is
begin
v_t := t||'hello';
return v_t;
end;
end;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.