PLSQL之存储过程.docx

上传人:叶*** 文档编号:57768017 上传时间:2022-11-05 格式:DOCX 页数:7 大小:20.39KB
返回 下载 相关 举报
PLSQL之存储过程.docx_第1页
第1页 / 共7页
PLSQL之存储过程.docx_第2页
第2页 / 共7页
点击查看更多>>
资源描述

《PLSQL之存储过程.docx》由会员分享,可在线阅读,更多相关《PLSQL之存储过程.docx(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、存储过程1 什么是存储过程?用于在数据库中完成特定的操作或者任务。是一个PLSQL程序块,可以永久的保存在数据库中以供其他程序调用。2 存储过程的参数模式调用环境 IN 类型的参数 OUT类型的参数 IN OUT类型的参数存储过程的参数特性:IN类型的参数OUT类型的参数IN-OUT类型的参数值被传递给子程序返回给调用环境传递给子程序返回给调用环境参数形式常量未初始化的变量初始化的变量使用时默认类型必须明确指定必须明确指定3 无参数存储过程的使用:CREATE OR REPLACE PROCEDURE 过程名 (parameter,.)IS定义变量BeginPlsql程序End;例:创建一个存

2、储过程,用于向数据库中插入一条记录。第一步:创建CREATE OR REPLACE PROCEDURE pro_1ISBegin insert into person values (11,aa,aav);End;第二步:在sql*plus中执行该过程exec pro_1;第三步:通过JDBC使用存储过程。private Connection conn = null;private ResultSet rs = null;private CallableStatement state = null;/调用一个无参数的存储过程public void testPro()conn = Tools.g

3、etConnection();try state = conn.prepareCall(call pro_1);state.execute(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();4 带有IN类型参数的存储过程的使用。例:创建一个存储过程,用于向数据库中插入一条记录。第一步:创建CREATE OR REPLACE PROCEDURE pro_2(id number,name varchar2,email varchar2)ISBegin insert into person valu

4、es (id,name,email);End;第二步:在sql*plus中执行该过程exec pro_2(12,aaa,aaa);第三步:通过JDBC使用存储过程。/使用一个带有 IN 类型参数的存储过程public void testPro_in(int id,String name,String email)conn = Tools.getConnection();try state = conn.prepareCall(call pro_2(?,?,?);state.setLong(1, id);state.setString(2, name);state.setString(3, em

5、ail);state.execute(); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace();5 带有out类型参数的存储过程的使用。例:创建一个存储过程,用于返回数据库中的Person表的总行数。第一步:创建CREATE OR REPLACE PROCEDURE pro_3(num out number)ISmynum number;Begin select count(*) into mynum from person; num := mynum;End;或者CREATE OR REPLACE

6、PROCEDURE pro_3(num out number)ISBegin select count(*) into num from person;End;第二步:在sql*plus中执行该过程declare a number;begin pro_3(a); dbms_output.put_line(a);end;第三步:通过JDBC使用存储过程。public void testPro_out()conn = Tools.getConnection();try state = conn.prepareCall(call pro_3(?);state.registerOutParameter

7、(1, Types.NUMERIC);state.execute();int num = state.getInt(1);System.out.println(num); catch (Exception e) / TODO Auto-generated catch blocke.printStackTrace(); 6 带有in-out类型参数的存储过程的使用。创建:CREATE OR REPLACE PROCEDURE pro_4(num in out number)ISa number := 100;Begin num := a*num;End;在sql*plus中执行该过程declare a number := 12;begin pro_4(a); dbms_output.put_line(a);end;练习:已知有一员工表,请编写一个存储过程,可以通过部门ID得到该部门员工的平均工资。7 / 7

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 考试试题 > 事业单位考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁