2016년 9월 28일 수요일

[오라클학원,SQL학원,PLSQL학원추천◆탑크리에듀]#4. PLSQL 프로시저(Procedure)

#4. PLSQL 프로시저(Procedure) 

프러시저(Procedure) 

 자신을 호출한 곳으로 리턴 해주는 값은 없고 호출되어 실행만 된다. 
 실행환경과 Stored Program 사이에 값을 전달하기 위해 파라미터를 사용한다. 
 파라미터 종류 
IN : 호출하는 곳에서 함수 or 프로시저로 값을 전달 
OUT : 함수 or 프로시저에서 호출한 곳으로 값을 전달 
IN OUT : 호출하는 곳에서 함수 or 프로시저로 값을 전달하고 동시에 함수 or 프로시저에서 호출한 곳으로 값을 전달하는 변수. 
 프러시저 Header의 끝에는 IS[AS]가 와야하고 Is와 Begin사이에 Begin ~ End에서 사용할 변수를 선언한다. 

[형식] 
CREATE [OR REPLACE] PROCEDURE procedure_name [parameters] 
IS[/AS]  
Declaration_section  
BEGIN  
Execution_section 
EXCEPTION  
exception section  
END; 


SQL> edit ojc3 

CREATE OR REPLACE  PROCEDURE ojc3 
          (p_empno  IN  NUMBER,  p_new_sal  IN  NUMBER) 
IS 
BEGIN   
            UPDATE  emp 
            SET    sal    =  p_new_sal 
            WHERE  empno  =  p_empno; 
            COMMIT; 
END ojc3 ; 


SQL> @ojc3 

프로시저가 생성되었습니다. 

SQL> select empno, ename, sal from emp where empno = 7369; 

    EMPNO  ENAME      SAL 
---------- ----------  ---------- 
      7369  SMITH          800 


SQL> exec ojc3(7369, 4500) 

PL/SQL 처리가 정상적으로 완료되었습니다. 

SQL> select empno, ename, sal from emp where empno = 7369; 

    EMPNO  ENAME      SAL 
---------- ----------  ---------- 
      7369  SMITH        4500 


[Procedure에서 OUT 변수 사용 예제] 

SQL> edit ojc4 

CREATE OR REPLACE PROCEDURE ojc4(p_empno IN NUMBER, p_sal OUT NUMBER) 
    IS 
    BEGIN 
      SELECT sal INTO p_sal FROM emp 
      WHERE empno = p_empno; 
    END ojc4; 
    / 

SQL> @ojc4 

프로시저가 생성되었습니다. 

SQL> variable sal number 
SQL> exec ojc4(7369, :sal) 

PL/SQL 처리가 정상적으로 완료되었습니다. 

SQL> print sal 

      SAL 
---------- 
      4500

댓글 없음:

댓글 쓰기