Oracle 的存储过程以及用jdbc调用存储过程
存储过程 就是一组用于完成特定功能的PL/SQL 具名语句块,该SQL语句集经过编译后存储在数据库系统中。在使用时候,我们只需要通过指定已经定义的存储过程名字并给出对应的参数来执行? 存储过程的定义语法 create or replace procedure 过程名(参数名 参数模式 参数类型,参数名 参数模式 参数类型,..... ) is ? ? 这里是声明变量的区域 begin? ? ? 这里是执行的语句块 end; end?过程名; 注意:当我们定义参数类型时 只能定义他的类型 不能定义他的长度? ?参数模式:in 输入的参数,一般为查询参数 ? ? ? ? ? ? ? ? out 输出的参数? ? ? ? ? ? ? ? ? in out 既能当做输入的参数 也能当做输出的参数 ?如果是没有参数的存储过程,则过程名后不能有() 定义一个存储过程没有参数 1 --存储过程 没有参数
2 create or replace procedure first_pro
3 is
4 begin
5 DBMS_OUTPUT.PUT_LINE(‘hello_pro‘);
6 end first_pro;
7
8
9 -- 执行存储过程
10 begin
11 first_pro();
12 end;
1 -- 定义一个存储过程,要求传入两个参数,都是数字,实现两个数相加,并将结果返回
2 create or replace procedure sum_pro(x in number,y out number)
3 is
4
5 begin
6 y:=x+y;
7 end sum_pro;
使用jdbc连接并操作数据库 1.首先要想连接数据库的话就必须要有一个驱动包 ojdbc6.jar? 如果安装的jdk5.0之前的可以使用6以下的版本 我的是jdk8.0 这个包在我们安装oracle的时候就已经帮我们下好了 我们只需要在oracle的下载路径下去找就可以找到 不用下
? ?2 接下来就可以去连接Oracle了 注意当我们创建连接的时候 最好先测试一下看连接是否成功 成功了 然后在往下面编写代码?连接成功后 1)先要获得存储过程的语句对象 2).然后在为输入参数赋值 3).注册输出参数类型 4).获取数据 5).关闭资源 ? 1 package jdbc_oracle;
2 import java.sql.CallableStatement;
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import oracle.jdbc.OracleTypes;
8 public class Test1 {
9 public static void main(String[] args) throws SQLException {
10 // 获取连接
11 Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/orcl","hengly","hengly");
1 CREATE OR REPLACE PACKAGE emp_package
2 AS
3 -- 定义一个动态游标
4 TYPE emp_cursor IS REF CURSOR;
5 -- 定义一个根据编号查询信息的存储过程
6 PROCEDURE getEmpbyId(eno emp.empno%type,ec out emp_cursor);
7 END emp_package ;
8
9 -- 编写包体
10 CREATE OR REPLACE PACKAGE BODY emp_package
11 AS
12 PROCEDURE getEmpbyId(eno emp.empno%type,ec out emp_cursor)
13 AS
14 BEGIN
15 OPEN ec FOR select * from emp where empno=eno;
16 END getEmpbyId ;
17 END emp_package ;
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |