기록해! 정리해!

7-1 본문

Oracle

7-1

zsuling 2022. 5. 24. 10:53

5/24

 

1) 스토어드 프로시저 

: CRUD 가능  (R:select)

 

1. select

--리턴이 있기때문에 insert, update, delete랑 패턴이 다름

 

select*from student;

--결과가 출력되기 위한 설정
set SERVEROUTPUT ON;

create procedure ps_select_student_count
as
var1 int;
var2 int;
begin 
 select count(*) into var1 from student;
 select count(*) into var2 from student where dept='컴퓨터';
 DBMS_OUTPUT.PUT_LINE('전체:'||var1||',조건:'||var2); --콘솔에 출력하겠다
end;

execute ps_select_student_count; --프로시저 호출
 
drop procedure ps_select_student_count;

 

2. insert

create or replace procedure sp_student_insert
(
 sp_sno varchar2,                         --원본테이블과 형이 같을 필요는 없고, 값을 받을 수만 있으면 됨
 sp_sname nvarchar2,
 sp_dept nvarchar2,
 sp_year char
 )
is 
begin
insert into student(sno, sname, dept, year) 
values (sp_sno, sp_sname, sp_dept, sp_year);
end;

execute sp_student_insert('901', '영심이', '전산', '3');
execute sp_student_insert('902', '하늘이', '물리', '2');

execute sp_student_insert('903', '지솔', '화학', '2');

select * from student
order by sno desc;
 

3. update

create or replace procedure sp_student_update
(
 sp_sno varchar2,
 sp_sname nvarchar2,
 sp_dept nvarchar2,
 sp_year char
 )
is 
begin
update student set sname=sp_sname, dept=sp_dept, year=sp_year
where sno=sp_sno;
end;

execute sp_student_update('903', '지솔', '화학', '3');

select * from student
order by sno desc;

 

4. delete

create or replace procedure sp_student_delete
(
 sp_sno varchar2
 )
is 
begin
delete from student 
where sno=sp_sno;
end;

execute sp_student_delete('903');

select * from student
order by sno desc;

 

 

 



 

'Oracle' 카테고리의 다른 글

7-2  (0) 2022.05.24
6-SQL 기본문법 정리  (0) 2022.05.24
7-예제1(데이터 베이스 용어)  (0) 2022.05.24
6-2  (0) 2022.05.23
6-예제 2(SQL예상문제)  (0) 2022.05.23
Comments