oracle 儲存過程語句總結

2021-05-26 11:23:54 字數 3785 閱讀 2702

1、exit when迴圈:

create or replace procedure proc_test_exit_when is  

i number;  

begin  

i:=0;  

loop  

exit when(i>5);  

dbms_output.put_line(i);  

i:=i+1;  

end loop;  

end proc_test_exit_when;  

create or replace procedure proc_test_exit_when is

i number;

begin

i:=0;

loop

exit when(i>5);

dbms_output.put_line(i);

i:=i+1;

end loop;

end proc_test_exit_when;

2、loop迴圈:

create or replace procedure proc_test_loop is  

i number;  

begin  

i:=0;  

loop  

i:=i+1;  

dbms_output.put_line(i);  

if i>5 then  

exit;  

end if;  

end loop;  

end proc_test_loop;  

create or replace procedure proc_test_loop is

i number;

begin

i:=0;

loop

i:=i+1;

dbms_output.put_line(i);

if i>5 then

exit;

end if;

end loop;

end proc_test_loop;

3、while迴圈:

create or replace procedure proc_test_while is  

i number;  

begin  

i:=0;  

while i<5 loop  

i:=i+1;  

dbms_output.put_line(i);  

end loop;  

end proc_test_while;  

create or replace procedure proc_test_while is

i number;

begin

i:=0;

while i<5 loop

i:=i+1;

dbms_output.put_line(i);

end loop;

end proc_test_while;

4、for普通迴圈:

create or replace procedure proc_test_for is  

i number;  

begin  

i:=0;  

for i in 1..5 loop  

dbms_output.put_line(i);  

end loop;  

end proc_test_for;  

create or replace procedure proc_test_for is

i number;

begin

i:=0;

for i in 1..5 loop

dbms_output.put_line(i);

end loop;

end proc_test_for;

5、for游標迴圈:

create or replace procedure proc_test_cursor is  

userrow test%rowtype;  

cursor userrows is  

select * from test;  

begin  

for userrow in userrows loop  

dbms_output.put_line(userrow.id||','||userrow.name||','||userrows%rowcount);  

end loop;  

end proc_test_cursor;  

create or replace procedure proc_test_cursor is

userrow test%rowtype;

cursor userrows is

select * from test;

begin

for userrow in userrows loop

dbms_output.put_line(userrow.id||','||userrow.name||','||userrows%rowcount);

end loop;

end proc_test_cursor;

上面所示為儲存過程相應**,你可以通過如下方式進行測試:

進入pl/sql, 執行 檔案->新建->程式視窗->空白,拷貝以上各段**,到pl/sql空白視窗中,安f8執行編譯。

再 執行 檔案->新建->命令視窗 進入命令視窗 執行一下  set serveroutput on 這句**,然後,輸入exec 相應儲存過程,ok。

第5中迴圈 要求新建乙個名為test的表 字段 id、name,插入幾條資料,進行測試即可。

oracle 中兩種條件控制語句

1. if......then

elsif......then

else

end if;

2. case

when......then

when......then

else

end case;

/////if的條件語句

///declare  

x number;  

y varchar2(10);  

begin  

x:=2;  

if x=1 then  

y:='a';  

elsif x=2 then  

y:='b';  

elsif x=3 then  

y:='c';  

else  

y:='others';  

end if;  

dbms_output.put_line('y的值為:'||y);  

end;  

/  ///

//case的條件語句

///declare  

x number;  

y varchar2(10);  

begin  

x:=2;  

case  

when x=1 then y='a';  

when x=2 then y='b';  

when x=3 then y='c';  

else y='others';  

end case;  

dbms_output.put_line('y的值為:'||y);  

end;

oracle儲存過程 建立儲存過程語句

一 建立儲存過程語句 語法 create or replace procedure testname argument1 type1,as begin end testname 例子 create orreplace procedure test name arg1 varchar2,arg2 nu...

ORACLE 儲存寫儲存過程總結

step01 需要建立乙個package 例如 create or replace package package name is end package name 這一步只是建立乙個package。step02 為建立好的package建立包體 例如 create or replace packa...

oracle儲存過程例子及其他語句

劉賢同學寫的乙個例子,很不錯,所以就收藏一下 sql create orreplace procedure p insert t v x in number istemp id number begin for i in 1.v x loop select seq b user id.nextval...