oracle exp存储过程吗,oracle 存储过程和函数例子

oracle 存储过程和函数例子

更新时间:2009年08月05日 22:58:48   作者:

本文没有对PL/SQL中的东西有什么说明,只是简单的举了几个例子,希望对大家有用!

作者:peace.zhao

关于 游标 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;

---关于游标 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;

---关于游标 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;

---关于for 循环的例子

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;

---关于 loop循环的例子

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;

---关于游标和loop循环的例子

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;

---关于异常处理的例子

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;

---关于异常处理的例子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;

---关于包的例子 定义包

create or replace package peace_pkg

as

function test1(in1 in varchar2)

return number;

procedure test2 (in2 in varchar2);

end peace_pkg;

---关于包的例子 定义包体

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;

相关文章

1a1b05c64693fbf380aa1344a7812747.png

pl/sql预定义了在varray 和嵌套表实例上进行调用的方法。这些方法能在集合上执行一定的功能。2009-06-06

4f55910a645b073bc4fc65dc10dc14bd.png

需要注意的一点,如果要修改的表,不是当前的用户的表,那么就需要添加上用户的名称。以及有修改此表的权限2012-05-05

0ea3c7666119d5615e582f823fb3fad6.png

ORACLE 10G修改字符编码没有超字符集的限制,可以直接修改成自己想要字符串,之前已经存在数据就需要重新再导入2014-08-08

4f96a78db829b1556ff16de21e013c7a.png

对于大多数Oracle DBA来说,启动和关闭Oracle数据库最常用的方式就是在命令行方式下的Server Manager。从Oracle 8i以后,系统将Server Manager的所有功能都集中到了SQL*Plus中,也就是说从8i以后对于数据库的启动和关闭可以直接通过SQL*Plus来完成2014-08-08

8cc1031babc6aff2319f1c6af8544aa0.png

在ORACLE移动数据库文件...2007-03-03

0c932a99bb7b6f23c937db507070cc7b.png

这篇文章主要介绍了oracle ORA-00031:session marked for kill(标记要终止的会话)解决方法 ,需要的朋友可以参考下2015-12-12

cca732bf65a93ed2ec0ac80c638460fe.png

这篇文章主要介绍了检测oracle数据库坏块的方法 的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下2016-05-05

2d9f31f2af7b675a3d153d2b7f1035a7.png

这篇文章主要介绍了Linux一键部署oracle安装环境脚本,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2020-01-01

b452cee8ec5cd9e58ab98eba17281e59.png

这篇文章主要为大家详细介绍了Win7 64位下PowerDesigner连接64位Oracle11g数据库,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-08-08

f4838ec7e2d4da28e0b57d4e852dadd4.png

这篇文章主要介绍了ORACLE 超长字符串问题的解决办法,需要的朋友可以参考下2015-10-10

最新评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值