▶속성
SQL%ROWCOUNT:수행된 SQL 문의 결과로서 나온 행의 수를 반환한다.
암시적커서:SQL%ROWCOUNT
set serveroutput on //dbms_output.put_line을 사용하기 위해서
먼저 set serveroutput on 을 써준다.
declare
v_deptno number :=&del_no;
emp_aa varchar2(40);
begin
delete from emp where deptno =v_deptno;
dbms_output.put_line(SQL%ROWCOUNT ||'명이 삭제되었습니다.');
end;
/
----------------------------------------------------------
@명시적 커서
(1)dept 테이블을 이용한 커서를 만들고 loop를 실행한다.
set serveroutput on //dbms_output.put_line을 사용하기 위해서
먼저 set serveroutput on 을 써준다.
declare
v_deptno dept.deptno%type;
v_dname dept.dname%type;
v_loc dept.loc%type;
cursor dept_cursor is select * from dept;
begin
open dept_cursor;
for i in 1..4 loop
fetch dept_cursor into v_deptno, v_dname, v_loc;
dbms_output.put_line(v_deptno||' '|| v_dname ||' '|| v_loc);
end loop;
dbms_output.put_line(dept_cursor%rowcount|| '개 행 출력')
close dept_cursor;
end;
/
----------------------------------------------------------
(2)emp테이블에서 사원번호, 이름,급여를 5~10행을 출력
declare
v_empno emp.empno%type;
v_ename emp.ename%type;
v_sal emp.sal%type;
v_cnt number(8);
v_rn number(8);
cursor emp_cursor is select *from
(select rownum as v_rn,empno,ename,sal from emp
order by empno asc)
where v_rn>=5 and v_rn<=10;
begin
select count(*) into v_cnt from
(select *from
(select rownum as v_rn,empno,ename,sal from emp)
where v_rn>=5 and v_rn<=10);
open emp_cursor;
for i in 1..v_cnt loop
fetch emp_cursor into v_rn, v_empno,v_ename,v_sal;
dbms_output.put_line(v_rn||' '|| v_empno||' '|| v_ename||' '|| v_sal);
end loop;
close emp_cursor;
end;
/
'개발 > sql' 카테고리의 다른 글
oracle sql (0) | 2015.09.25 |
---|---|
oracle sql (0) | 2015.09.25 |
oracle sql (0) | 2015.09.24 |
oracel sql (0) | 2015.09.23 |
mysql,if,ifnull, format, update,이중 select (0) | 2015.08.17 |
댓글