★ PL/SQL 간단 예제
SQL> ed an_1 // an_1.sql을 생성해서 간단한 PL/SQL문을 작성한다.
// 넘버 2개를 입력받아 첫번째 넘버에 해당하는 데이터의 age를 2배하여
// 두번째 넘버에 해당하는 데이터의 age에 넣는다.
accept a_one_num prompt '검색할 넘버는? '
accept a_two_num prompt '갱신할 넘버는? '
declare
v_one_age NUMBER; // 변수 이름이 먼저 온다. ㅡ.ㅡ;;
begin
select age into v_one_age from test10_tbl where num = &a_one_num;
update test10_tbl set age = (2 * v_one_age ) where num = &a_two_num;
end;
!!! 주의
첫번째 넘버로 검색했을 때, 데이터가 여러개가 나오면 에러 발생
"실제 인출은 요구된 것보다 많은 수의 행을 추출합니다"
-> 루프문으로 해결해야 한다.
★ 간단 예제2
SQL> ed an_2 // an_2.sql을 생성해서 간단한 PL/SQL문을 작성한다.
set echo off // 에코 없애기
set verify off // 마찬가지
accept a_sal prompt '얼마 원해?'
variable v_result varchar2(40);
declare
v_sal number := &a_sal;
begin
if(v_sal > 500) then
:v_result := '진짜야? 짤리고 싶어?';
elsif(v_sal > 300) then // else if 가 아니다 ㅡ.ㅡ;;
:v_result := '그래? 일 열심히 했어?';
else
:v_result := '그거 가지고 괜찮아?';
end if;
end;
/
print v_result // 결과 출력
set verify on
set echo on
★ 프로시져 간단 예제
- empno를 입력받아 그 사람의 sal을 a_sal 로 돌려준다.
create or replace procedure proc1(a_empno in number, a_sal out number)
is
begin
select sal into a_sal from emp where empno = a_empno;
end;
/
show errors // 오류가 있나 체크
// 오라클 서버에 저장이 되어서 나중에 간단하게 실행시킬 수 있다.
SQL> variable v_salary number; // 변수 선언?? - 결과값을 받는다.
SQL> exec proc1(7566, :v_salary); // 프로시져 실행
PL/SQL 처리가 정상적으로 완료되었습니다.
SQL> print v_salary; // 결과값 출력
V_SALARY
----------
2975
'프로그래밍 > DB' 카테고리의 다른 글
[펌] PL/SQL 02 (0) | 2007.11.27 |
---|---|
[Oracle/펌] PL/SQL 01 (0) | 2007.11.27 |
[JDBC] 05 ResultSet (0) | 2007.11.27 |
[JDBC] 04 JDBC - Connection Pool... (0) | 2007.11.27 |
[JDBC] 03 3일째 (0) | 2007.11.27 |