Teradata-저장 프로 시저
저장 프로 시저에는 일련의 SQL 문과 절차 문이 포함됩니다. 절차 적 설명 만 포함 할 수 있습니다. 저장 프로 시저의 정의는 데이터베이스에 저장되고 매개 변수는 데이터 사전 테이블에 저장됩니다.
장점
저장 프로시 저는 클라이언트와 서버 간의 네트워크로드를 줄입니다.
데이터에 직접 액세스하는 대신 저장 프로 시저를 통해 액세스하므로 더 나은 보안을 제공합니다.
비즈니스 로직이 테스트되고 서버에 저장되기 때문에 더 나은 유지 관리를 제공합니다.
절차 생성
저장 프로시 저는 CREATE PROCEDURE 문을 사용하여 생성됩니다.
통사론
다음은 CREATE PROCEDURE 문의 일반 구문입니다.
CREATE PROCEDURE <procedurename> ( [parameter 1 data type, parameter 2 data type..] )
BEGIN
<SQL or SPL statements>;
END;
예
다음 급여 표를 고려하십시오.
직원 아니요 | 심한 | 공제 | 순이익 |
---|---|---|---|
101 | 40,000 | 4,000 | 36,000 |
102 | 80,000 | 6,000 | 74,000 |
103 | 90,000 | 7,000 | 83,000 |
104 | 75,000 | 5,000 | 70,000 |
다음 예제에서는 값을 수락하고 Salary Table에 삽입 할 InsertSalary라는 저장 프로 시저를 만듭니다.
CREATE PROCEDURE InsertSalary (
IN in_EmployeeNo INTEGER, IN in_Gross INTEGER,
IN in_Deduction INTEGER, IN in_NetPay INTEGER
)
BEGIN
INSERT INTO Salary (
EmployeeNo,
Gross,
Deduction,
NetPay
)
VALUES (
:in_EmployeeNo,
:in_Gross,
:in_Deduction,
:in_NetPay
);
END;
절차 실행
저장 프로시 저는 CALL 문을 사용하여 실행됩니다.
통사론
다음은 CALL 문의 일반 구문입니다.
CALL <procedure name> [(parameter values)];
예
다음 예에서는 저장 프로 시저 InsertSalary를 호출하고 Salary Table에 레코드를 삽입합니다.
CALL InsertSalary(105,20000,2000,18000);
위의 질의가 실행되면 다음과 같은 출력이 생성되고 Salary 테이블에서 삽입 된 행을 볼 수 있습니다.
직원 아니요 | 심한 | 공제 | 순이익 |
---|---|---|---|
101 | 40,000 | 4,000 | 36,000 |
102 | 80,000 | 6,000 | 74,000 |
103 | 90,000 | 7,000 | 83,000 |
104 | 75,000 | 5,000 | 70,000 |
105 | 20,000 | 2,000 | 18,000 |