2016년 9월 28일 수요일

[오라클학원,SQL학원,PLSQL학원추천◆탑크리에듀]#3. PLSQL 함수(Function)

#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

댓글 없음:

댓글 쓰기