16—plsql编程之分页过程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

--创建book表

create table book(bookId number,bookName varchar2(50),publicHouse varchar2(50)); --编写过程

--in表示这是一个输入参数,默认值是in

--out表示这是一个输出参数。

create or replace procedure loonggg_pro6(lbookId in number,lbookName in

varchar2,lpublicHouse in varchar2)is

begin

insert into book values(lbookId,lbookName,lpublicHouse);

end;

java的调用:

package net.loonggg.java;

import java.sql.*;

public class Test1 {

public static void main(String[] args) {

try {

//1.0加载驱动

Class.forName("oracle.jdbc.driver.OracleDriver");

//2.0得到链接

Connection ct =

DriverManager.getConnection("jdbc:oracle:thin:@10.116.62.18:1521: loonggg","SCOTT","loonggg");

//3.0创建CallableStatement

CallableStatement cs = ct.prepareCall("{call

loonggg_pro6(?,?,?)}");

//给?赋值

cs.setInt(1, 10);

cs.setString(2, "笑傲江湖");

cs.setString(3, "理工大出版社");

//4.0执行

cs.execute();

//关闭资源

cs.close();

ct.close();

} catch (Exception e) {

e.printStackTrace();

}finally{

//关闭打开的各个资源

}

}

}

--有输入和输出的存储过程

create or replace procedure loonggg_pro7

(lNo in number,lName out varchar2)is

begin

select ename into lName from emp where empno=lNo;

end;

-------------------------

create or replace procedure loonggg_pro7

(lNo in number,lName out varchar2,lSal out number,lJob out varchar2)is begin

select ename ,sal,job into lName,lSal,lJob from emp where empno=lNo;

end;

java的调用见test中的test2。

--返回结果集的过程

--1.创建一个包,在该包中定义了一个类型,是一个游标类型。

create or replace package testpackage as

type test_cursor is ref cursor;

end testpackage;

--创建存储过程

create or replace procedure loonggg_pro8

(Lno in number,L_cursor out testpackage.test_cursor)is

begin

open L_cursor for select*from emp where deptno =Lno;

end;

--如何在java中调用该过程:见test中的test3。

--oracle的分页

select t1.*,rownum rn from(select*from emp) t1;

select t1.*,rownum rn from(select*from emp) t1 where rownum<=10;

--在分页时大家可以把下面的sql语句当作一个模板使用。

select*from

(select t1.*,rownum rn from(select*from emp) t1 where rownum<=10)where rn>=6;

--先开发一个包

--1.创建一个包,在该包中定义了一个类型,是一个游标类型。

create or replace package testpackage as

type test_cursor is ref cursor;

end testpackage;

--开始编写分页的过程。

create or replace procedure fenye

(tableName in varchar2,

Pagesize in number,

pageNow in number,

myrows out number,--总记录数

myPageCount out number,--总页数

l_cursor out testpackage.test_cursor--返回记录集

)is

--定义部分

--定义sql语句字符串

v_sql varchar2(1000);

--定义两个整数

v_begin number:=(pageNOW-1)*Pagesize+1;

相关文档
最新文档