`

Oracle存储过程代码

 
阅读更多
 package com.test.oracle;

import java.sql.*;

public class testOracleFenye {

	public static void main(String[] args) {
		ResultSet rs = null;
		Statement stmt = null;
		Connection conn = null;
		try {
			String URL = "jdbc:oracle:thin:@localhost:1521:myoracl";
			String user = "scott";
			String password = "tiger";
			
			Class.forName("oracle.jdbc.driver.OracleDriver");
			conn = DriverManager.getConnection(URL, user, password);
			CallableStatement cs = conn.prepareCall("{call fenye(?,?,?,?,?,?)}");
			cs.setString(1, "emp");
			cs.setInt(2, 6);
			cs.setInt(3, 1);
			cs.registerOutParameter(4, oracle.jdbc.OracleTypes.INTEGER);
			cs.registerOutParameter(5, oracle.jdbc.OracleTypes.INTEGER);
			cs.registerOutParameter(6, oracle.jdbc.OracleTypes.CURSOR);
			
			cs.execute();
			System.out.println(cs.getInt(4));
			System.out.println(cs.getInt(5));
			rs = (ResultSet)cs.getObject(6);
			
			while (rs.next()) {
				System.out.print(rs.getInt(1)+"     ");
				System.out.print(rs.getString(2)+"    ");
				System.out.print(rs.getString(3)+"    ");
				System.out.print(rs.getInt(4)+"     ");
				System.out.print("\n");
			}
			} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (rs != null) {
					rs.close();
					rs = null;
				}
				if (stmt != null) {
					stmt.close();
					stmt = null;
				}
				if (conn != null) {
					conn.close();
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}

 

--先建包
create or replace package fenyepackage as
type test_cursor is ref cursor;
end fenyepackage;

--存储过程
create or replace procedure fenye
(tableName in varchar2,
pageSize in number,
pageNow in number,
myRows out number,  --总记录数
myPageCount out number,
zhao_cursor out fenyepackage.test_cursor ) is 
v_sql varchar2(1000);
v_begin number:=(pageNow-1)*pageSize+1;
v_end number:=pageNow*pageSize;
begin
v_sql:='select * from (select t1.*,rownum rn from (select * from '||tableName||') t1 where rownum<='||v_end||') where rn>='||v_begin;
open zhao_cursor for v_sql;
v_sql:='select count(*) from '||tableName;
execute immediate v_sql into myRows;
if mod(myRows,pageSize)=0 then
myPageCount:=myRows/pageSize;
else
myPageCount:=myRows/pageSize+1;
end if;
close zhao_cursor;
end;

 

分享到:
评论

相关推荐

    oracle存储过程代码实例

    oracle存储过程代码实例,oracle存储过程代码实例,oracle存储过程代码实例

    oracle存储过程unwrap解密工具.zip

    Oracle存储过程是数据库管理员和开发人员用来封装SQL语句和PL/SQL代码的单元。它们可以执行复杂的业务逻辑,提高性能,并简化数据库操作。在某些情况下,存储过程可能被加密,这可能是出于安全考虑,防止未授权访问...

    oracle存储过程代码样例.doc

    从给定的文件信息来看,我们正在探讨的是一个在Oracle数据库环境下编写的存储过程,名为`sp_kr_ns_hn_mtv_dtal`。这个存储过程主要服务于河南移动的手机电视专区日累计报表的需求,其设计与实现包含了多个层面的技术...

    oracle存储过程解锁

    以下是对“oracle存储过程解锁”这一主题的深入解析。 ### 标题:“oracle存储过程解锁” #### 解析: 在Oracle数据库中,存储过程是一种预先编译并存储在数据库中的SQL代码块,用于执行复杂的业务逻辑或数据处理...

    oracle存储过程-帮助文档

    Oracle存储过程是数据库管理系统中的一种重要特性,它允许开发者编写一系列SQL语句和PL/SQL块,形成可重复使用的代码单元。这篇博客“oracle存储过程-帮助文档”可能提供了关于如何创建、调用和管理Oracle存储过程...

    pb中执行oracle存储过程脚本

    Oracle存储过程则是在Oracle数据库中预编译的一系列SQL和PL/SQL语句,可以视为数据库端的可执行代码。 在描述中提到的“使用批处理进行oracle存储过程脚本的创建和更新的处理”,这可能意味着开发者使用批处理命令...

    使用java实现oracle存储过程

    使用java实现oracle存储过程。 共有3个小例子。实现的功能 1、无返回值的存储过程 如 insert 2、有返回值的存储过程(非列表)select id from tab 3、返回列表 如:select * from tab 顺便鄙视下csdn,作为一个it...

    oracle 存储过程 函数 dblink

    在这段Java代码中,我们使用了`CallableStatement`来调用Oracle存储过程`TESTA`。关键点包括: - `prepareCall`方法用于准备调用存储过程。 - 使用`setString`方法设置输入参数的值。 - 调用`execute`方法执行存储...

    C# 传入自定义列表List 到Oracle存储过程

    本文将详细讲解如何在C#中使用自定义列表(List)作为参数调用Oracle存储过程,以及实现这一功能的关键技术和注意事项。 首先,我们需要了解Oracle数据库中的PL/SQL类型,例如VARCAR2、NUMBER等,它们对应于C#中的...

    hibernate query调用oracle存储过程

    以下是一个简单的示例,展示了如何调用一个不带参数的Oracle存储过程: ```java Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); session....

    java调用Oracle存储过程的代码

    在Java编程中,与Oracle数据库进行交互是常见的需求,尤其是当需要执行复杂的业务逻辑时,我们通常会使用Oracle存储过程。存储过程是预编译的SQL语句集合,它可以提高性能,封装复杂逻辑,并减少网络通信量。本教程...

    Oracle存储过程调用bat批处理脚本程序

    首先,`Oracle存储过程`是一种预编译的SQL和PL/SQL代码集合,可以被多次调用以执行特定的任务。它们提高了性能,降低了网络流量,并简化了数据库管理。在存储过程中调用外部脚本可以扩展Oracle的功能,比如自动化...

    ORACLE存储过程最全教程

    Oracle存储过程是数据库管理系统Oracle中的一个关键特性,它允许开发者编写一组预编译的SQL和PL/SQL语句,以实现特定的业务逻辑或数据库操作。这篇教程将深入讲解Oracle存储过程的各个方面,帮助你从基础到高级全面...

    oracle 存储过程批量提交

    ### Oracle存储过程批量提交知识点详解 在Oracle数据库中,存储过程是一种重要的数据库对象,它可以包含一系列SQL语句和控制流语句,用于实现复杂的业务逻辑处理。存储过程不仅可以提高应用程序性能,还可以确保...

    Oracle存储过程开发的要点

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,用于封装一系列SQL和PL/SQL代码,以实现特定的功能。在Oracle中,存储过程可以提高应用程序的性能,因为它减少了与数据库的交互次数,并允许在数据库级别...

    Oracle存储过程返回结果集

    本篇将深入探讨如何在Oracle存储过程中创建并返回一个结果集,并结合Java代码展示如何在应用程序中使用这个结果集。 首先,我们需要理解`OUT`参数的概念。在Oracle存储过程中,`IN`参数用于传递数据到过程,`OUT`...

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    Oracle 存储过程调用 CallabledStatement 实用例子(IN OUT 传游标) 一、Oracle 存储过程简介 Oracle 存储过程是一种可以在 Oracle 数据库中存储和执行的程序单元。存储过程可以由多种语言编写,例如 PL/SQL、...

    Oracle存储过程中使用临时表

    本篇文章将深入探讨如何在Oracle存储过程中使用临时表,包括会话级临时表和事务级临时表。 ### 会话级临时表 会话级临时表(Session-Level Temporary Tables)只在创建它的会话内可见,并且在会话结束时自动删除。...

    CodeSmtih生成Oracle存储过程

    6. **生成代码**:最后,当你运行CodeSmith并应用模板时,它将根据模板和数据库信息生成实际的Oracle存储过程代码。这些代码可以直接在PL/SQL Developer或其他数据库管理工具中执行,从而在数据库中创建存储过程。 ...

    ORACLE存储过程学习源码

    Oracle存储过程是数据库编程的重要组成部分,它允许程序员在数据库中执行复杂的业务逻辑和数据操作。这个"ORACLE存储过程学习源码"集合包含了从基础到高级的30个示例,是学习和掌握Oracle存储过程的理想资源。下面,...

Global site tag (gtag.js) - Google Analytics