PLSQL之存储过程.doc_第1页
PLSQL之存储过程.doc_第2页
PLSQL之存储过程.doc_第3页
PLSQL之存储过程.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论