oracle 存儲(chǔ)過程和函數(shù)例子
更新時(shí)間:2009年08月05日 22:58:48 作者:
本文沒有對(duì)PL/SQL中的東西有什么說明,只是簡單的舉了幾個(gè)例子,希望對(duì)大家有用!
作者:peace.zhao
關(guān)于 游標(biāo) if,for 的例子
create or replace procedure peace_if
is
cursor var_c is select * from grade;
begin
for temp in var_c loop
if temp.course_name = 'OS' then
dbms_output.put_line('Stu_name = '||temp.stu_name);
elsif temp.course_name = 'DB' then
dbms_output.put_line('DB');
else
dbms_output.put_line('feng la feng la ');
end if;
end loop;
end;
---關(guān)于游標(biāo) for,case 的例子1
create or replace procedure peace_case1
is
cursor var_c is select * from test_case;
begin
for temp in var_c loop
case temp.vol
when 1 then
dbms_output.put_line('haha1');
when 2 then
dbms_output.put_line('haha2');
when 3 then
dbms_output.put_line('haha3');
when 4 then
dbms_output.put_line('haha4');
else
dbms_output.put_line('qita');
end case ;
end loop;
end;
---關(guān)于游標(biāo) for,case 的例子2
create or replace procedure peace_case2
is
cursor var_c is select * from test_case;
begin
for temp in var_c loop
case
when temp.vol=1 then
dbms_output.put_line('haha1');
when temp.vol=2 then
dbms_output.put_line('haha2');
when temp.vol=3 then
dbms_output.put_line('haha3');
when temp.vol=4 then
dbms_output.put_line('haha4');
else
dbms_output.put_line('qita');
end case ;
end loop;
end;
---關(guān)于for 循環(huán)的例子
create or replace procedure peace_for
is
sum1 number :=0;
temp varchar2(500);
begin
for i in 1..9 loop
temp := '';
for j in 1 .. i
loop
sum1 := i * j;
temp := temp||to_char(i) || ' * ' ||to_char(j) ||' = ' ||to_char(sum1) ||' ';
end loop;
dbms_output.put_line(temp );
end loop;
end;
---關(guān)于 loop循環(huán)的例子
create or replace procedure peace_loop
is
sum1 number := 0;
temp number :=0 ;
begin
loop
exit when temp >= 10 ;
sum1 := sum1+temp;
temp := temp +1;
end loop;
dbms_output.put_line(sum1 );
end;
---關(guān)于游標(biāo)和loop循環(huán)的例子
create or replace procedure loop_cur
is
stu_name varchar2(100);
course_name varchar2(100);
cursor var_cur is select * from grade ;
begin
open var_cur;
loop
fetch var_cur into stu_name,course_name;
exit when var_cur%notfound;
dbms_output.put_line(stu_name|| course_name);
end loop;
close var_cur;
end;
---關(guān)于異常處理的例子
create or replace procedure peace_exp(in1 in varchar2)
is
c_n varchar2(100);
begin
select course_name into c_n from grade where stu_name = in1;
dbms_output.put_line(c_n);
exception
when no_data_found
then
dbms_output.put_line('try');
when TOO_MANY_ROWS
then
dbms_output.put_line('more');
end;
---關(guān)于異常處理的例子2
create or replace procedure peace_insert ( c_n in varchar2)
is
error EXCEPTION;
begin
if c_n = 'OK'
then
insert into course (course_name) values (c_n);
elsif c_n = 'NG' then
insert into course (course_name) values (c_n);
raise error;
else
Dbms_Output.put_line('c_n' || c_n);
end if;
commit;
exception
when error then
rollback;
Dbms_Output.put_line('ERRO');
end;
---關(guān)于包的例子 定義包
create or replace package peace_pkg
as
function test1(in1 in varchar2)
return number;
procedure test2 (in2 in varchar2);
end peace_pkg;
---關(guān)于包的例子 定義包體
create or replace package body peace_pkg
as
function test1(in1 in varchar2)
return number
as
temp number;
begin
temp := 0;
return temp;
end;
procedure test2 (in2 in varchar2)
is
begin
dbms_output.put_line(in2);
end;
end peace_pkg;
關(guān)于 游標(biāo) if,for 的例子
create or replace procedure peace_if
is
cursor var_c is select * from grade;
begin
for temp in var_c loop
if temp.course_name = 'OS' then
dbms_output.put_line('Stu_name = '||temp.stu_name);
elsif temp.course_name = 'DB' then
dbms_output.put_line('DB');
else
dbms_output.put_line('feng la feng la ');
end if;
end loop;
end;
---關(guān)于游標(biāo) for,case 的例子1
create or replace procedure peace_case1
is
cursor var_c is select * from test_case;
begin
for temp in var_c loop
case temp.vol
when 1 then
dbms_output.put_line('haha1');
when 2 then
dbms_output.put_line('haha2');
when 3 then
dbms_output.put_line('haha3');
when 4 then
dbms_output.put_line('haha4');
else
dbms_output.put_line('qita');
end case ;
end loop;
end;
---關(guān)于游標(biāo) for,case 的例子2
create or replace procedure peace_case2
is
cursor var_c is select * from test_case;
begin
for temp in var_c loop
case
when temp.vol=1 then
dbms_output.put_line('haha1');
when temp.vol=2 then
dbms_output.put_line('haha2');
when temp.vol=3 then
dbms_output.put_line('haha3');
when temp.vol=4 then
dbms_output.put_line('haha4');
else
dbms_output.put_line('qita');
end case ;
end loop;
end;
---關(guān)于for 循環(huán)的例子
create or replace procedure peace_for
is
sum1 number :=0;
temp varchar2(500);
begin
for i in 1..9 loop
temp := '';
for j in 1 .. i
loop
sum1 := i * j;
temp := temp||to_char(i) || ' * ' ||to_char(j) ||' = ' ||to_char(sum1) ||' ';
end loop;
dbms_output.put_line(temp );
end loop;
end;
---關(guān)于 loop循環(huán)的例子
create or replace procedure peace_loop
is
sum1 number := 0;
temp number :=0 ;
begin
loop
exit when temp >= 10 ;
sum1 := sum1+temp;
temp := temp +1;
end loop;
dbms_output.put_line(sum1 );
end;
---關(guān)于游標(biāo)和loop循環(huán)的例子
create or replace procedure loop_cur
is
stu_name varchar2(100);
course_name varchar2(100);
cursor var_cur is select * from grade ;
begin
open var_cur;
loop
fetch var_cur into stu_name,course_name;
exit when var_cur%notfound;
dbms_output.put_line(stu_name|| course_name);
end loop;
close var_cur;
end;
---關(guān)于異常處理的例子
create or replace procedure peace_exp(in1 in varchar2)
is
c_n varchar2(100);
begin
select course_name into c_n from grade where stu_name = in1;
dbms_output.put_line(c_n);
exception
when no_data_found
then
dbms_output.put_line('try');
when TOO_MANY_ROWS
then
dbms_output.put_line('more');
end;
---關(guān)于異常處理的例子2
create or replace procedure peace_insert ( c_n in varchar2)
is
error EXCEPTION;
begin
if c_n = 'OK'
then
insert into course (course_name) values (c_n);
elsif c_n = 'NG' then
insert into course (course_name) values (c_n);
raise error;
else
Dbms_Output.put_line('c_n' || c_n);
end if;
commit;
exception
when error then
rollback;
Dbms_Output.put_line('ERRO');
end;
---關(guān)于包的例子 定義包
create or replace package peace_pkg
as
function test1(in1 in varchar2)
return number;
procedure test2 (in2 in varchar2);
end peace_pkg;
---關(guān)于包的例子 定義包體
create or replace package body peace_pkg
as
function test1(in1 in varchar2)
return number
as
temp number;
begin
temp := 0;
return temp;
end;
procedure test2 (in2 in varchar2)
is
begin
dbms_output.put_line(in2);
end;
end peace_pkg;
您可能感興趣的文章:
- Oracle存儲(chǔ)過程基本語法介紹
- oracle 存儲(chǔ)過程詳細(xì)介紹(創(chuàng)建,刪除存儲(chǔ)過程,參數(shù)傳遞等)
- Oracle中返回結(jié)果集的存儲(chǔ)過程分享
- Oracle存儲(chǔ)過程及調(diào)用
- Oracle存儲(chǔ)過程返回游標(biāo)實(shí)例詳解
- oracle 在一個(gè)存儲(chǔ)過程中調(diào)用另一個(gè)返回游標(biāo)的存儲(chǔ)過程
- Oracle存儲(chǔ)過程和存儲(chǔ)函數(shù)創(chuàng)建方法(詳解)
- Oracle存儲(chǔ)過程入門學(xué)習(xí)基本語法
- oracle數(shù)據(jù)庫中查看系統(tǒng)存儲(chǔ)過程的方法
- Oracle存儲(chǔ)過程新手入門教程(附學(xué)習(xí)用例)
相關(guān)文章
OB Oracle系統(tǒng)視圖權(quán)限導(dǎo)致的故障解決案例
在 Oracle 和 OB Oracle 租戶下調(diào)用存儲(chǔ)過程時(shí),兩者表現(xiàn)并不一致,導(dǎo)致獲取到的 SQL 文本拼接不完整,影響到了業(yè)務(wù)側(cè)的功能測試,本文將針對(duì)這個(gè)問題進(jìn)行相關(guān)的測試和驗(yàn)證2023-10-10
查看Oracle數(shù)據(jù)庫中UNDO表空間的使用情況(最新推薦)
Oracle數(shù)據(jù)庫中查看UNDO表空間使用情況的4種方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$UNDOSTAT顯示使用統(tǒng)計(jì)信息,DBA_FREE_SPACE查看空閑空間,V$TRANSACTION顯示當(dāng)前事務(wù)占用的UNDO情況,本文介紹Oracle數(shù)據(jù)庫中UNDO表空間的使用情況,感興趣的朋友一起看看吧2025-03-03
查看oracle數(shù)據(jù)庫的編碼及修改編碼格式的方法
本節(jié)主要介紹了如何查看oracle數(shù)據(jù)庫的編碼及修改編碼格式,需要的朋友可以參考下2014-07-07
Oracle中scott表結(jié)構(gòu)與簡單查詢實(shí)例分析
這篇文章主要介紹了Oracle中scott表結(jié)構(gòu)與簡單查詢,實(shí)例分析Oracle查詢的相關(guān)技巧,需要的朋友可以參考下2015-04-04
淺談入門級(jí)oracle數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入導(dǎo)出步驟
這篇文章主要介紹了淺談入門級(jí)oracle數(shù)據(jù)庫數(shù)據(jù)導(dǎo)入導(dǎo)出步驟,文章通過步驟解析介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08

