티스토리 뷰
CREATE OR REPLACE PROCEDURE
print_hello(p in nvarchar2)
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!'||p);
--System.out.println("Hello World"+p) 과 유사한 기능을 가진다.
-- "Hello World"+p => String concatenation
END;
/
SET SERVEROUTPUT ON
EXECUTE print_hello('홍길동');
-- 이것은 프로시저가 DBMS에 저장되어 있고 이 내용을 호출하여 붙여서 나옴
select *from USER_SOURCE;
select *from student;
--학과별로 학생의 인원을 계산해서 ST_DEPT 테이블에 기록
delete st_dept;
insert into st_dept
select dept,count(*) from student group by dept;
select*from st_dept;
drop table st_dept;
create table st_dept(
dept nvarchar2(10),
stnum number(3));
CREATE OR REPLACE PROCEDURE
refresh_st_dept
is
begin
delete st_dept; -- 먼저 안에있는 데이터 지우고
insert into st_dept -- 데이터 삽입
select dept,count(*) from student group by dept;
end;
/
insert into student values (900,'나라',3,'IT');
select * from student;
execute refresh_st_dept;
commit;
create view st_dept_view (dept,snum)
as
select dept,count(*) from student group by dept;
-- 뷰로도 사용이 가능하다 . 반드시 프로시저를 쓰란 말이 아님
select * from st_dept_view;