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;
'(Before)BitSchool' 카테고리의 다른 글
2014/05/22 TCP/IP, 유틸리티API (0) | 2014.05.22 |
---|---|
2014/05/21 javanetwork - 네트워크의 개요 (0) | 2014.05.21 |
2014/05/19 Oracle - Aggregate Function, Group by, Having, Subquery (0) | 2014.05.19 |
2014/5/16 - 오라클 - Function, join, create, constraint (0) | 2014.05.16 |
2014/5/15 데이터베이스 - 오라클 (0) | 2014.05.15 |