图解Oracle存储过程教程
1 Oracle的工具有PLSQL和Oracle自带的SQL Developer,以下使用后者;
从开始菜单启动SQL Developer;
2 进入以前用scott账号建立的连接;
3 先输入下述语句统计下各个表的记录数;
看用哪个表做存储过程的示例;
4 后来想到不如用SCOTT账户下自带的表;Oracle自带的表EMP内容如下;
5 做第一个简单存储过程;输入下图语句,执行,出现下图错误;
6 再写一个如下图所示简单存储过程;执行;正确;结果如下图;
7 改正5的错误;因为网页拷过来的代码有时候会包含全角字符,全角空格不容易发现;故出现“无效的字符”;改正后执行,正确,代码和结果如下图;
8 存储过程返回结果集
Oracle不像SQLServer那样在存储过程中用Select就可以返回结果集,而是通过Out型的参数进行结果集返回的;
下图代码中,
cursor cursor_emp is select * from emp; – 定义游标
row_emp cursor_emp%rowtype; – 定义row_emp是游标中的行类型;
返回游标后循环输出获取的行集;
9 返回记录数和使用select into 语句,代码和结果如下图;
10 存储过程中的if语句;
输入型参数不能作为赋值目标;出现下图错误;
11 把参数类型改为 in out 类型,再编译;正确;然后执行,输入参数和执行结果如下图;
12 再做一个返回结果集,返回EMP表的SAL,代码和结果如下图;
13 存储过程中的while语句,代码和结果如下图;
以上代码经调试无误;下载:
http://pan.baidu.com/s/1eQ4FTAy