存储过程---初级教程
来源:互联网 发布:飘哪个译本好 知乎 编辑:程序博客网 时间:2024/06/05 06:04
一 创建存储过程
CREATE OR REPLACE PROCEDURE cuiyaonan2000(存储过程名)( 参数1 IN NUMBER, 参数2 IN NUMBER, 参数3 OUT Number //如上是in表示你传递给存储过程的参数,out表示存储过程返回给你的参数.可以有多个.不同于下面的变量) IS/AS //这里用IS 还是用AS 随个人习惯,没有什么区别变量1 INTEGER :=0;变量2 DATE; //如上这些是变量是存储过程的内部变量,相当于在方法内申请的局部变量.当然有全局变量,在此不做介绍.作用就是在下面的语句块中使用,和方法内部变量一致.变量可以有多个.BEGIN这里是一些用if,while,for等流程语句控制的多个sql;END cuiyaonan2000 //结束标志
用例环境oracle数据库 PL/SQL Developer
create or replace procedure cuiyaonan2000(a in number,b out number)ISfirst1 char;second2 number(1); third3 number := 123;begin NULL; EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output.put_line('数据未找到错误');when others then dbms_output.put_line('未知错误'); END;end cuiyaonan2000;//如上 := 是给变量赋值的 传统意义上的 等号 //如上 := 是给变量赋值的 传统意义上的 等号//如上exception when 就是 拦截异常 跟Try catch 一样//No_data_found 是异常名 others指所有异常// dbms_output.put_line 是数据库方法 如同system.out.println
二. 流程控制语句
IF流程语句:
create or replace procedure cuiyaonan2000(a in number,b out number)IS first1 char; second2 number(1); third3 number := 123; begin if a > 0 then begin dbms_output.put_line(a); b:= 123; dbms_output.put_line(a); end; end if; if third3 > 0 then begin dbms_output.put_line(third3); third3 := third3 +1; dbms_output.put_line(third3); end; end if;exception WHEN NO_DATA_FOUND THEN dbms_output.put_line('数据未找到错误');when others then dbms_output.put_line('未知错误'); end cuiyaonan2000; //如上的传入参数a 不能再赋值,否则报错 //如上 := 是给变量赋值的 传统意义上的 等号 //b 用来接收 cuiyaonan2000存储过程返回的结果.少参数调用报错
FOR流程语句
create or replace procedure cuiyaonan2000(a in number,b out number)IS Cursor cursor is select name from test_table_user; beginFOR temp IN cursor LOOP dbms_output.put_line(temp.name);END LOOP;exception WHEN NO_DATA_FOUND THEN dbms_output.put_line('数据未找到错误'); when others then dbms_output.put_line('未知错误'); end cuiyaonan2000; //如上 cursor 是游标 跟jdbc的游标差不多 指向一条记录.然后用循环来遍历所有查到的记录.这里for temp in 后必须是记录集合
WHILE流程语句
create or replace procedure cuiyaonan2000(a in number,b out number)IS c number :=1; begin while c < 10 LOOP begin c:= c + 1; dbms_output.put_line(c); end; end LOOP; exception WHEN NO_DATA_FOUND THEN dbms_output.put_line('数据未找到错误'); WHEN others then dbms_output.put_line('未知错误'); end cuiyaonan2000;
这是些简单的用例,建议大家看完这些后再去研究下游标.如何调用存储过程可以在 plsql的sql命令中输入如下的代码
//这里是 plsql sql窗口的测试写法 //i 用来接收 cuiyaonan2000存储过程返回的结果.少参数也报错declare i integer;begin cuiyaonan2000(1,i);end;
- 存储过程初级教程
- 存储过程---初级教程
- 存储过程---初级教程
- 转一个存储过程初级教程,有空可以看一下!
- 转一个存储过程初级教程,有空可以看一下!
- 初级教程
- 初级教程之 三 Android四种存储方式
- oracle pl/sql语言初级教程之过程和函数
- Oracle PL/SQL语言初级教程之过程和函数
- 存储过程
- 存储过程
- 存储过程
- 存储过程
- 存储过程
- 存储过程
- 存储过程
- 存储过程
- 存储过程
- linux下 PCI 设备驱动开发
- NDK动态链接库的编译和调用
- 移动互联网
- android 开发中文件夹分辨率选择
- linux服务器开启telnet服务
- 存储过程---初级教程
- 初学试试看cocos2dx的TestCPP框架(1)
- setInterval和clearInterval 讲解
- ActiveX Control 向Https服务器发送文件
- WebService系列CXF方式(三)
- java高手之路
- [Web Chart系列之二] 各种实现js 图表的library汇总与比较
- WEB站点性能优化实践(加载速度提升2s)
- fcntl的close-on-exec标志