Oracle 데이터베이스 학습 - 저장 과정
SQL 의 순환 과 분기 쓰기
create or replace procedure basePro is
num number default 0;
begin
--loop
loop
Dbms_Output.put_line('loop...end loop' || num);
exit when(num > 2);
num := num + 1;
end loop;
--while loop
while (num < 6) loop
Dbms_Output.put_line('while...end loop' || num);
num := num + 1;
end loop;
--for loop
for i in 1 .. 4 loop
Dbms_Output.put_line('for...end loop' || i);
end loop;
num := 5;
if num < 10 then
Dbms_Output.put_line('if num < 10');
elsif num < 20 then
Dbms_Output.put_line('if num < 20');
else
Dbms_Output.put_line('if num < 30');
end if;
case
when num < 10 then
Dbms_Output.put_line('case num < 10');
when num < 20 then
Dbms_Output.put_line('case num < 10');
else
Dbms_Output.put_line('case num < 30');
end case;
--
raise_application_error(-20000,'bug bug');
insert into test values (1, '33');
commit;
exception
when others then
Dbms_Output.put_line('insert erroer'||sqlcode||sqlerrm);
end basePro;
/
create or replace procedure bigNumInsert(arg1 in out default 0 number , arg2 varchar2) is
newid number default 0;
begin
dbms_output.put_line(arg1);
dbms_output.put_line(arg2);
dbms_output.put_line(newid);
while (arg1 < 1000) loop
select nvl(max(id), 0) into newid from test;
newid := newid + 1;
insert into test values (newid, arg2 || arg1);
arg1 := arg1 + 1;
end loop;
update test t set t.name='4';
dbms_output.put_line(SQL%rowcount);
commit;
end;
/
prompt
prompt Creating procedure CURSOR1
prompt ==========================
prompt
create or replace procedure cursor1 is
num number default 0;
cursor c1 is
select * from emp;
emprow emp%rowtype;
begin
--
for i in (select * from emp) loop
dbms_output.put_line(i.EMPNO);
end loop;
-- 2
for i in c1 loop
dbms_output.put_line(i.ENAME);
end loop;
--
open c1;
loop
fetch c1
into emprow;
exit when c1%notfound;
dbms_output.put_line(emprow.empno || ' ' || emprow.ENAME);
end loop;
close c1;
--
end cursor1;
/
create or replace procedure cursor2 is
--num number default 0;
--type ref_cursor is ref cursor;
c1 p1.ref_cursor;
emprow emp%rowtype;
sqlString varchar2(2000);
begin
-- sql
sqlString := 'select * from emp t where t.empno= 7369';
open c1 for sqlString;
loop
fetch c1
into emprow;
exit when c1%notfound;
dbms_output.put_line(emprow.ename);
end loop;
close c1;
sqlString := 'select * from emp t where t.empno= :empno';
open c1 for sqlString
using 7369;
loop
fetch c1
into emprow;
exit when c1%notfound;
dbms_output.put_line(emprow.ename);
end loop;
close c1;
end cursor2;
/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 작업 은 Clob 또는 NClob 데이터 형식의 저장 프로 세 스 인 스 턴 스 를 포함 합 니 다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.