首页 > 代码库 > Oracle存储过程的理解

Oracle存储过程的理解

  在大专时候学的专业是数据库管理专业,在学校学了各种各样的数据 MSSQL、ORACLE、MySQL。

那时候学数据大部分只学到了些皮毛,仅仅只会按照书上SQL语句,输入计算机得出结果,就很有成就感。

对于高阶课程存储过程就有些难度了,那时候也没学好存储过程。最近项目中用到存储过程,才知道存储过程的重要性。

存储过程几乎可以解决所有业务逻辑,我们可以用存储过程取代代码中的逻辑。

这样代码只要关心输入参数得出想要的结果,可以大大简化客户端开发。

但因为存储过程本身语法并不优美,阅读起来会有些吃力,常常会看到一个存储过程有上千行代码,可读性很差。

存储过程在一些场合非常有用,比如常用的 分页存储过程、批量更新处理数据。

所以还是有必要掌握学习存储过程的,特别是一些传统软件行业,存储过程就是他们的核心。

以下是自己总结 存储过程的一些语法:

 create or replace procedurre  my_proce

(

user_name varchar2(20),

out out_cursor sys_cursor

) as 

declare

cursor my_cursor is  select * from tab_users;

tab_row tab_user%rowtype;

user_password  tab_users.user_password%type;

begin

--几种调用游标的方式

open cursor my_cursor;

--loop 方式

loop

fetch tab_row in my_cursor

dbms_output.putline(tab_row.user_name);

exit when my_sursor%nofound

end loop;

--while 方式

while tab_row%found loop

fetch tab_row in my_cursor;

dbms_output.putline(tab_row.password);

end loop;

-- for 方式 不用显示打开游标

for tab_row in my_cursor loop

  dbms_output.put_line(tab_row.username);

end loop;

 

-- open for sql语句

open out_cursor for ‘select * from tab_users‘;

 

 

 

 

end;

 

Oracle存储过程的理解