기록해! 정리해!

7-3 (프로시저) 본문

Oracle

7-3 (프로시저)

zsuling 2022. 5. 24. 13:09

--프로시저를 사용하면 쿼리문을 DBMS(오라클)에서 가지고 있다

 

7. insert 구문

 

create or replace procedure sp_insert
(
 i_sno varchar2,
 i_sname varchar2,
 i_dept varchar2,
 i_year varchar2
)
is
begin 
 insert into student (sno, sname, dept, year)
values (i_sno, i_sname, i_dept, i_year);
end;

execute sp_insert('911','가나다','전산','4'); --값 넣고 끝, 리턴 안함

select * from student;

 

8. update 구문

 

create or replace procedure sp_update
(
 i_sno varchar2,
 i_sname varchar2
)
is
begin 
 update student  set sname=i_sname
 where sno=i_sno;
end;

execute sp_update('100','민수');

select * from student;

 

9. delete 구문

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

execute sp_delete('911');  --형 맞춰보기

select * from student;

 

10. Select 구문

 

1)

create or replace procedure sp_select1
as
var1 varchar2(10);
var2 varchar2(10);
var3 varchar2(10);
begin 
 select sno, sname, dept
 into var1, var2, var3
 from student
 where sno='100'; 
 DBMS_OUTPUT.put_line(var1||var2||var3); --한 라인만 출력 가능
end; 

execute sp_select1;

--출력: 100민수컴퓨터

 

2)

create or replace procedure sp_select2
(
strSno in varchar2 --입력변수
)
as
var1 varchar2(10); --출력변수
var2 varchar2(10);
var3 varchar2(10);
begin 
 select sno, sname, dept
 into var1, var2, var3
 from student
 where sno=strSno; --변수니까 sno='strSno'하면 안됨
 DBMS_OUTPUT.put_line(var1||var2||var3); 

 DBMS_OUTPUT.put_line('하나의 라인만 출력됩니다);
 DBMS_OUTPUT.put_line("출력성공!!!");
end; 

execute sp_select2('300');

--출력: 300정기태컴퓨터

          하나의 라인만 출력됩니다

          출력성공!!!

 

3)
create or replace procedure sp_select3
(
ret out pkg.t_ref,
strSno in varchar2 --입력변수
)
is
begin 
 open ret for
 select sno, sname, dept
 from student
 where sno=strSno; 
end; 

execute sp_select3('300');

--출력: 300정기태컴퓨터

 

2)랑 3)이랑 같음 

 

 

4)

create or replace procedure sp_select4
(
ret out pkg.t_ref,
strDept in varchar2 --입력변수
)
is
begin 
 open ret for
 select sno, sname, dept
 from student
 where dept like strDept; 
end; 

--프로시저 실행 in값에 %컴%

--출력: 컴퓨터과 다 나옴

create or replace procedure sp_select5
(
ret out pkg.t_ref,
strDept in varchar2 --입력변수
)
is
begin 
 open ret for
 select sno, sname, dept
 from student
 where dept like '%'||strDept||'%'; 
end; 

--프로시저 실행 in값에 컴


--출력: 컴퓨터과 다 나옴

11. 함수와 메소드

클래스 안에 들어있으면 메소드

안들어 있으면 함수 

'Oracle' 카테고리의 다른 글

7-예제2(big data-trigger)  (0) 2022.05.24
7-4(bigdata)  (0) 2022.05.24
7-2  (0) 2022.05.24
6-SQL 기본문법 정리  (0) 2022.05.24
7-1  (0) 2022.05.24
Comments