您的位置:首页 > 博客中心 > 数据库 >

plsql分页

时间:2022-03-10 17:13

[c-sharp] view plaincopy
  1. create or replace procedure sp_pro7(spBookId in number,spbookName in varchar2,sppublishHouse in varchar2) is  
  2.     insert into book values(spBookId,spbookName,sppublishHouse);  
  3. [java] view plaincopy
  1. //调用一个无返回值的过程  
  2. public class Test2{  
  3.           
  4.             //1.加载驱动  
  5.             //2.得到连接  
  6.   
  7.             CallableStatement cs = ct.prepareCall("{call sp_pro7(?,?,?)}");  
  8.             cs.setInt(1,10);  
  9.             cs.setString(3,"人民出版社");  
  10.             cs.execute();              
  11.             e.printStackTrace();  
  12.             //6.关闭各个打开的资源  
  13.             ct.close();  
  14.     }  
  15. [c-sharp] view plaincopy
  1. --有输入和输出的存储过程  
  2. (spno in number, spName out varchar2) is  
  3.     select ename into spName from emp where empno=spno;  
  4. [java] view plaincopy
  1. import java.sql.*;  
  2.     public static void main(String[] args){  
  3.         try{  
  4.             Class.forName("oracle.jdbc.driver.OracleDriver");  
  5.             Connection ct = DriverManager.getConnection("jdbc:oracle:thin@127.0.0.1:1521:MYORA1","scott","m123");  
  6.             //3.创建CallableStatement  
  7.             //4.给?赋值 
  8.             cs.setString(2,"笑傲江湖"); 
  9.   
  10.             //创建CallableStatement  
  11.   
  12.             cs.setInt(1,7788);  
  13.             cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR);  
  14.             //5.执行  
  15.             //取出返回值,要注意?的顺序  
  16.             System.out.println("7788的名字"+name);          
  17.             e.printStackTrace();  
  18.             //6.关闭各个打开的资源  
  19.             ct.close();  
  20.     }  
  21. [c-sharp] view plaincopy
  1. --有输入和输出的存储过程  
  2. (spno in number, spName out varchar2,spSal out number,spJob out varchar2) is  
  3.     select ename,sal,job into spName,spSal,spJob from emp where empno=spno;  
  4. [java] view plaincopy
  1. import java.sql.*;  
  2.     public static void main(String[] args){  
  3.         try{  
  4.             Class.forName("oracle.jdbc.driver.OracleDriver");  
  5.             Connection ct = DriverManager.getConnection("jdbc:oracle:thin@127.0.0.1:1521:MYORA1","scott","m123");  
  6.             //3.创建CallableStatement  
  7.             //4.给?赋值 
  8.             cs.setString(2,"笑傲江湖"); 
  9.   
  10.             //创建CallableStatement  
  11.   
  12.             cs.setInt(1,7788);  
  13.             cs.registerOutParameter(2,oracle.jdbc.OracleTypes.VARCHAR);  
  14.             cs.registerOutParameter(3,oracle.jdbc.OracleTypes.DOUBLE);  
  15.             cs.registerOutParameter(4,oracle.jdbc.OracleTypes.VARCHAR);  
  16.             //5.执行  
  17.             //取出返回值,要注意?的顺序  
  18.             String job=cs.getString(4);  
  19.         } catch(Exception e){  
  20.         } finally{  
  21.             cs.close();  
  22.         }  
  23. }  

 

[c-sharp] view plaincopy
  1. create or replace package testpackage as  
  2. end testpackage;  

 

[c-sharp] view plaincopy
  1. create or replace procedure sp_pro9(spNo in number,p_cursor out testpackage.test_cursor) is  
  2.   open p_cursor for  
  3. end sp_pro9;  

 

[java] view plaincopy
  1. import java.sql.*;  
  2.     public static void main(String[] args){  
  3.         try{  
  4.             Class.forName("oracle.jdbc.driver.OracleDriver");  
  5.             Connection ct = DriverManager.getConnection("jdbc:oracle:thin@127.0.0.1:1521:MYORA1","scott","m123");  
  6.             //看看如何调用有返回值的过程  
  7.             /*CallableStatement cs = ct.prepareCall("{call sp_pro9(?,?)}");  
  8.             //4.给第?赋值  
  9.             //给第二个?赋值  
  10.   
  11.             cs.execute();     
  12.             ResultSet rs=(ResultSet)cs.getObject(2);       
  13.                 System.out.println(rs.getInt(1)+" "+rs.getString(2));  
  14.         } catch(Exception e){  
  15.         } finally{  
  16.             cs.close();  
  17.         }  
  18. }  

 

[c-sharp] view plaincopy
  1. select t1.*, rownum rn from (select * from emp) t1 where rownum<=10;  
  2. select * from  
  3. where rn>=6;  

 

[c-sharp] view plaincopy
  1. create or replace package testpackage as  
  2. end testpackage;  
  3. create or replace procedure fenye  
  4.      Pagesize in number,--一页显示记录数  
  5.      myrows out number,--总记录数  
  6.      p_cursor out testpackage.test_cursor--返回的记录集  
  7. --定义部分  
  8. v_sql varchar2(1000);  
  9. v_begin number:=(pageNow-1)*Pagesize+1;  
  10. begin  
  11. v_sql:=‘select * from (select t1.*, rownum rn from (select * from ‘||tableName||‘) t1 where rownum<=‘||v_end||‘) where rn>=‘||v_begin;  
  12. open p_cursor for v_sql;  
  13. --组织一个sql语句  
  14. --执行sql,并把返回的值,赋给myrows;  
  15. --计算myPageCount  
  16. if mod(myrows,Pagesize)=0 then  
  17. else  
  18. end if;  
  19. close p_cursor;  
  20. [java] view plaincopy
    1. import java.sql.*;  
    2.     public static void main(String[] args){  
    3.         try{  
    4.             Class.forName("oracle.jdbc.driver.OracleDriver");  
    5.             Connection ct = DriverManager.getConnection("jdbc:oracle:thin@127.0.0.1:1521:MYORA1","scott","m123");  
    6.             //3.创建CallableStatement  
    7.   
    8.             cs.seString(1,"emp");  
    9.             cs.setInt(3,2);  
    10.             //注册总记录数  
    11.             //注册总页数  
    12.             //注册返回的结果集  
    13.   
    14.             cs.execute();   
    15.             //取出总记录数   /这里要注意,getInt(4)中4,是由该参数的位置决定的  
    16.   
    17.             ResultSet rs=(ResultSet)cs.getObject(6);   
    18.             //显示一下,看看对不对    
    19.             System.out.println("总页数="+pageCount);  
    20.             while(rs.next()){  
    21.             }   
    22.             e.printStackTrace();  
    23.             //6.关闭各个打开的资源  
    24.             ct.close();  
    25.     }  
    26. [c-sharp] view plaincopy
      1. begin  
      2. v_sql:=‘select * from (select t1.*, rownum rn from (select * from ‘||tableName||‘ order by sal) t1 where rownum<=‘||v_end||‘) where rn>=‘||v_begin;  

       

            重新执行一次procedure,java不用改变,运行,控制台输出:        rowNum=19        总页数:4        编号:7900 名字:JAMES 工资:950.0        编号:7876 名字:ADAMS 工资:1100.0        编号:7521 名字:WARD 工资:1250.0        编号:7654 名字:MARTIN 工资:1250.0         编号:7934 名字:MILLER 工资:1300.0

      plsql分页,布布扣,bubuko.com

      热门排行

      今日推荐

      热门手游