728x90
저장함수
- Procedure와 달리 실행(함수호출)후 결과를 되돌려 받을 수 있는
return 데이터;
를 반드시 명시해야 함CREATE [OR REPLACE] FUNCTION 함수명(매개변수 선언) RETURN 자료형 IS 변수선언 BEGIN (순차적으로)실행할 SQL문 RETURN 데이터; END; /
사용법
- CREATE FUNTION~ (함수를 DB에 저장) — 함수 생성
- VARIABLE 바인드변수명 자료형; — 변수 선언
- EXEC[UTE] :바인드변수명 := 함수명() — 함수호출, 결과값 저장
- PRINT 바인드변수명; — 저장 값 확인
자바와 비교한 참고)
void hello(String name){
System.out.println("안녕,"+name);
} -----> Stored Procedure (리턴키워드 없고)
String hi( ){
return "좋은 하루~!!";
}
-----> Stored Function (리턴키워드 있고)
- 문제) 특정사원에게 보너스를 지급하려고 하는데 급여의 200%에 해당하는 비용을 지급하려 한다.
이 보너스 금액을 FUNTION을 통해 구하시오 + 보너스비율
CREATE OR REPLACE FUNCTION call_bonus(vename emp.ename%type)
RETURN NUMBER
IS
vsal emp.sal%type;
bonus NUMBER;
BEGIN
SELECT sal INTO vsal FROM emp WHERE ename = vename;
bonus := vsal *2;
RETURN bonus;
END;
/
variable bonus number; --리턴받을 변수 선언
execute :bonus := call_bonus('SMITH');
print bonus;
'Web develop > SQL' 카테고리의 다른 글
[SQL/ORACLE] 패키지(Package) 선언, 실행방법 및 사용예제 (0) | 2019.06.16 |
---|---|
[SQL/ORACLE] 커서 (CURSOR) 형식, FOR문에 사용하는 커서, ORA-01422 에러 (0) | 2019.06.16 |
[SQL/ORACLE] 저장 프로시저 (Stored Procedure) 형식, 사용 예제 (0) | 2019.06.16 |
[SQL/ORACLE] PL/SQL 반복문 형식 (LOOP, FOR, 다중 FOR문,WHILE) (0) | 2019.06.16 |
[SQL/ORACLE] PL/SQL 조건문 형식 및 사용예제 (if문, if~else문, if~elif~else문) (0) | 2019.06.15 |