본문 바로가기

(Before)BitSchool

2014/05/20 오라클 - PL/SQL, 프로시저, 함수생성

반응형

PL/SQL

오라클에서 제시한 블록기반의 SQL

[DECLARE] - optional

BEGIN 

[EXCEPTION] - optional

END



ACCEPT - 입력받을때


VARIABLE - 변수


PRINT - 출력


EXECUTE - 실행


edit test;

accept p_sal prompt 'input sal:';

@test;


edit anony;

accept p_sal Prompt 'input sal:';   // 입력받는다.   SQL PLUS 부분

variable g_anu_sal number;    // 변수 선언    SQL PLUS 부분

declare                 //  PL/SQL 부분

v_sal number := &p_sal;    

begin

:g_anu_sal := &p_sal*12;   // 변수 연산

end;

/

print  g_anu_sal;   // 변수 출력


실행 : @anony;



프로시져 : 리턴이 없는 형태

함수 : 리턴값 


no를  new_sal로 변경

create or replace procedure change_salary

(no number , new_sal number)

is 

begin 

update emp

set sal = new_sal

where empno = no;

end change_salary;

생성


exec change_salary(1,1000);



CREATE OR REPLACE PROCEDURE UP_INSERTEMP 

(

  NO IN NUMBER 

, NAME IN VARCHAR2 

, new_SAL IN NUMBER 

) is 

BEGIN

  insert into emp(empno, ename, sal)

  values(No,name,new_sal);


END UP_INSERTEMP;




Stored Function

함수사용

CREATE OR REPLACE FUNCTION GET_SALARY 

(no number)

RETURN number

AS 

  R_sal number;

BEGIN

  select sal into R_sal 

  from emp

  where empno = no;


  RETURN R_sal;

  

END GET_SALARY;


함수 이용

select GET_SALARY(7369) from dual;


함수사용

CREATE OR REPLACE FUNCTION GET_ENAME 

RETURN VARCHAR2 

AS

  R_name varchar2(20);

BEGIN

select ename into R_name

from emp

where sal = (select max(sal) from emp);

  RETURN R_name;

END GET_ENAME;


함수이용

select GET_ename() from dual;








반응형