图解Oracle存储过程教程

1 Oracle的工具有PLSQL和Oracle自带的SQL Developer,以下使用后者;

从开始菜单启动SQL Developer;

图解Oracle存储过程教程_第1张图片

 

2 进入以前用scott账号建立的连接;

图解Oracle存储过程教程_第2张图片

 

3 先输入下述语句统计下各个表的记录数;

看用哪个表做存储过程的示例;

图解Oracle存储过程教程_第3张图片

 

4 后来想到不如用SCOTT账户下自带的表;Oracle自带的表EMP内容如下;

图解Oracle存储过程教程_第4张图片

 

5 做第一个简单存储过程;输入下图语句,执行,出现下图错误;

图解Oracle存储过程教程_第5张图片

 

6 再写一个如下图所示简单存储过程;执行;正确;结果如下图;

图解Oracle存储过程教程_第6张图片

 

图解Oracle存储过程教程_第7张图片

7 改正5的错误;因为网页拷过来的代码有时候会包含全角字符,全角空格不容易发现;故出现“无效的字符”;改正后执行,正确,代码和结果如下图;

图解Oracle存储过程教程_第8张图片

 

8 存储过程返回结果集

Oracle不像SQLServer那样在存储过程中用Select就可以返回结果集,而是通过Out型的参数进行结果集返回的;

下图代码中,

cursor cursor_emp is select * from emp;    -- 定义游标

row_emp cursor_emp%rowtype;               -- 定义row_emp是游标中的行类型;

返回游标后循环输出获取的行集;

图解Oracle存储过程教程_第9张图片

 

9 返回记录数和使用select into 语句,代码和结果如下图;

图解Oracle存储过程教程_第10张图片

 

10 存储过程中的if语句;

输入型参数不能作为赋值目标;出现下图错误;

图解Oracle存储过程教程_第11张图片

 

11 把参数类型改为 in out 类型,再编译;正确;然后执行,输入参数和执行结果如下图;

图解Oracle存储过程教程_第12张图片

 

图解Oracle存储过程教程_第13张图片

 

12 再做一个返回结果集,返回EMP表的SAL,代码和结果如下图;

图解Oracle存储过程教程_第14张图片

 

13 存储过程中的while语句,代码和结果如下图;

图解Oracle存储过程教程_第15张图片

以上代码经调试无误;下载:

http://pan.baidu.com/s/1eQ4FTAy

你可能感兴趣的:(数据库)