#3. PLSQL 함수(Function)
함수(Function)
자신을 호출한 곳으로 반드시 하나의 값을 리턴해 줘야되는 PL/SQL Stored Program 이다.
함수 Header에 리턴되는 데이터 타입을 기술해야 한다.
함수 Header의 끝에는 IS[AS]가 와야하고 Is와 Begin사이에 Begin~End에서 사용할 변수를 선언한다.
[형식]
CREATE [OR REPLACE] FUNCTION function_name [parameters]
RETURN 리턴되는 데이터타입
IS[/AS]
Declaration_section
BEGIN
Execution_section
Return return_variable;
EXCEPTION
exception section
Return return_variable;
END;
/
SQL> edit ojc2
CREATE OR REPLACE FUNCTION ojc2(p_empno IN NUMBER)
RETURN VARCHAR2
IS
v_ename emp.ename%TYPE;
BEGIN
-- BEGIN~END 사이의 SELECT절은 반드시 한건만 SELECT 되야하며 INTO절이 반드시 필요
SELECT ename
INTO v_ename
FROM emp
WHERE empno = p_empno;
RETURN v_ename;
END ojc2;
/
SQL> @ojc2
함수가 생성되었습니다.
SQL> variable ename varchar2(50)
SQL> exec :ename := ojc2(7369)
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> print ename
ENAME
-------------------------------------------------------------------
SMITH
SQL> select ojc2(7369) from dual;
OJC2(7788)
------------------------------------
SCOTT
SQL> drop table emp_temp;
SQL> create table emp_temp as select empno, sal, ename from emp where 1 = 2;
SQL> insert into emp_temp values (7788, 9999, ojc2(7788));
1 개의 행이 만들어졌습니다.
SQL> select * from emp_temp;
EMPNO SAL ENAME
---------- ---------- ----------
77888 9999 SCOTT
댓글 없음:
댓글 쓰기