oracle存储过程实现分页

首先我们来谈谈PL/SQL的好处
1.块结构: PL/SQL代码是由彼此之间可以互相嵌套的快组成的。每个块形成一个任务或逻辑模块单元。PL/SQL的块可以存储在数据库中,并且可以被重用。

2.过程语言能力:PL/SQL由过程语言的结构组成,像条件语句(if else语句)和循环语句(for loops)。

3.更好的性能:PL/SQL引擎可以同时处理多条SQL语句像一个单独的块,因此节约了网络传输。

4.错误处理:在PL/SQL程序执行期间,PL/SQL可以有效的处理异常或者错误。一旦异常被捕获,相应的动作可以被执行,依赖于异常的类型,或者显示个客户一个错误的消息。

下面是要实现分页用到的包和存储过程


--定义一个包,并在包中定义一个取得分页结果集的游标
create or replace package fypackage as
type fenye_cursor is ref cursor;
end fypackage;

--定义一个存储过程用来表示分页
create or replace procedure fenye(
tableName in varchar2,--查询的表名
myPageSize in number,--每页显示记录条数
pageNum in number,--第几页
allRows out number,--所有记录条数
allPages out number,--所有页数
result_cursor out fypackage.fenye_cursor--返回结果集游标
) is
v_sql varchar2(1000);
v_start number:=(pageNum-1)*myPageSize+1;
v_end number:=pageNum*myPageSize;
begin
v_sql:='select * from (select A.*,rownum rn from (select * from '||tableName||') A) where rn>='||v_start||' and rn<='||v_end;
open result_cursor for v_sql;
v_sql:='select count(*) from '||tableName;
execute immediate v_sql into allRows;
if mod(allRows,myPageSize)=0 then
allPages:=allRows/myPageSize;
else
allPages:=allRows/myPageSize+1;
end if;
end;



在客户端调用存储过程

package com.lamp.test;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

public class TestProcedureFenye {

public static void main(String[] args) {
Connection conn = null;
CallableStatement cs = null;
String user = "SCOTT";
String password = "tiger";
String url = "jdbc:oracle:thin:@localhost:1521:数据库名";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
cs = conn.prepareCall("{call fenye(?,?,?,?,?,?)}");
cs.setString(1, "emp");
cs.setInt(2, 5);
cs.setInt(3, 2);
// 设置返回值类型
cs.registerOutParameter(4, oracle.jdbc.OracleTypes.NUMBER);
cs.registerOutParameter(5, oracle.jdbc.OracleTypes.NUMBER);
cs.registerOutParameter(6, oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
int allRows = cs.getInt(4);
int allPages = cs.getInt(5);
ResultSet rs = (ResultSet) cs.getObject(6);
System.out.println(allRows + " " + allPages);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (cs != null) {
try {
cs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}

}

Oracle的分页查询语句 Oracle分页的存储过程 Oracle的分页查询语句以及Oracle分页的存储过程 立即下载

相关推荐

oracle 存储过程分页示例

NULL 博文链接:https://jsufly.iteye.com/blog/646683

Oracle使用存储过程分页

今天我要说的就是基于Oracle存储过程的一种简单的分页方式,首先就是页面前端发起对分页的请求,然后向Oracle存储过程中传入页面当前数,页面大小,查询的SQL语句,而存储过程返回来的则是数据总条数和当前页面要显示的数据集合。形式如下所示:procedure P_GetPageSize(p_pagesize int, p_startsize int,

思念十年后 4988

XGBoost与Embedding混合建模实战解析

在机器学习领域,特征工程与模型融合是提升预测性能的关键技术。Embedding技术通过将高维稀疏特征(如文本、ID类数据)转化为低维稠密向量,有效捕获语义关联;而XGBoost作为强大的集成学习算法,擅长处理结构化特征并进行自动特征组合。两者结合的混合架构(如Semantic Boosted Trees)在金融风控和推荐系统等场景中展现出显著优势,尤其在处理用户行为序列、商品ID等复杂特征时,相比传统方法能获得更好的模型效果。本文通过电商推荐和金融反欺诈等案例,详解如何实现Embedding+XGBoost

weixin_28718641的博客 324

Oracle存储过程查询分页

Oracle jdbc Procedure 数据库分页查询

青春飞扬__fly_in_the_sky(刘利锋) 1010

从ACTF2020看文件上传漏洞:你以为改后缀就完事了?这些坑我都帮你踩过了

本文通过ACTF2020的Upload题目深入剖析文件上传漏洞的复杂性和防御策略。文章揭示了常见误区,如仅修改文件后缀的局限性,并详细解析了绕过技巧和高级防御机制。从开发角度提供了构建安全上传功能的实用建议,帮助读者全面理解文件上传漏洞的本质与防护方法。

weixin_29278805的博客 246

PredFormer实战:用Transformer搞定交通流量预测(附TaxiBJ数据集代码)

本文详细介绍了如何利用PredFormer这一基于Transformer的先进模型进行交通流量预测,特别针对TaxiBJ数据集提供了完整的实战代码和优化策略。PredFormer通过门控Transformer块(GTB)的创新设计,在时空预测任务中展现出显著优势,相比传统方法将MSE降低33.1%,推理速度提升4.4倍。文章还涵盖了模型轻量化、部署优化等实用技巧,为智慧城市建设中的交通预测提供了高效解决方案。

weixin_29194817的博客 444

Oracle存储过程及分页

一、存储过程 1、存储过程(Stored Procedure) 是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果存储过程有参数)l来执行它。 存储过程是数据库中的一个重要对象 缺点:移植性不好,只能适应当前的数据库。   2、语法定义 --or replace 表示有该存储过程...

qq_40453037的博客 639

2026 具身智能 VLA/WAM 全栈学习与训练路线:从动作建模、SFT、RL 到世界模型的 RTX PRO 6000 96GB 单卡实战指南

我会把这张表做成“”而不是只列论文名:先核对每个模型截至的公开代码、训练目标和数据接口,再单独给你一套。对于没有公开、只有推理代码或训练细节不完整的模型,我会明确标出来,避免把“论文里提到”误写成“可复现”。目前有一个重要更新:。截至今天 NVIDIA 官方开源主线已经是换成 Cosmos-Reason2-2B/Qwen3-VL 架构,动作端仍是连续路线,而且官方明确给出单卡微调时默认只训练,峰值显存约。所以你的 96GB 单卡对 GR00T SFT 非常宽裕。可以。下面我按,把它整理成一张真正面向“

u013250861的博客 442

oracle存储过程实现分页功能(超详细)

1.实现分页的基础原理 declare v_size number(2):=5;--每页显示5条 v_page number(2):=1;--当前的页码 begin select * from ( select t.*,rownum r from ( select * from emp order by empno ) t where rownum<=(v_size*v_page)) where r>(v_page-1)*v_size; end;

qq_48033003的博客 1413

Dify + mem0插件实战:如何让AI记住你的饮食习惯(附完整代码)

本文通过Dify平台与mem0插件实战,详细演示了如何为AI助手构建长期记忆系统,使其能记住并理解用户的复杂饮食习惯(如过敏源、饮食偏好)。文章提供了完整的工作流配置与Python代码示例,帮助开发者实现跨会话的个性化饮食建议,解决AI对话中的“健忘”问题。

lg888的博客 1093

线性代数-第24篇:线性代数在控制系统中的核心应用

线性代数通过状态空间建模、矩阵分解与优化算法,为控制系统提供了从理论分析到工程实现的完整框架。从传统PID控制到现代智能控制,其应用贯穿系统设计、分析与优化的全流程。未来,随着多智能体协同控制、量子控制系统等前沿领域的发展,线性代数将在高维矩阵计算、分布式优化等方向持续创新,为复杂控制系统的突破提供核心支撑。如果对线性代数在控制系统中的应用细节有疑问,欢迎在评论区留言!

无 423

Oracle存储过程、触发器、分页以及数据库的管理与备份

1、分页 思路:orcale 要使用分页得使用rownum (行号来进行分页),rownum 不支持大于号,查询rownum 起别名 《多少 》多少 2、数据库的备份与管理 用户的创建与授权: 创建用户 create user use...

年轻就是资本的专栏 1032

YOLOv11的物理信息神经网络(PINN):引入物理规律约束目标运动预测

本文介绍了YOLOv11目标检测与PINN物理信息神经网络的融合技术。YOLOv11采用增强特征提取和参数优化架构,在保持实时性的同时提升检测精度。PINN通过将物理方程嵌入损失函数,实现数据高效学习。两者的结合可显著提升运动预测准确性和遮挡处理鲁棒性。文章详细阐述了环境配置、YOLOv11模型验证方法,并提供了基础PINN框架代码实现,展示了物理约束如何通过自动微分整合到神经网络中。该融合技术适用于自动驾驶、无人机导航等需要物理规律建模的视觉感知场景。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 422

如何在Oracle存储过程中实现分页

几乎每一个WEB应用都会用到分页,因此,将其做得通用高效就变得非常重要了,根据自己的想法用存储过程做了一个分页的存储过程,与大家分享,希望能够通过讨论得到更好的解决方案。         之所以用存储过程,是因为以后需要修改的话不需要修改程序代码,只需要修改存储过程的代码。但这个例子是在存储过程里动态生成的SQL语句,不知道会不会因此失去存储过程一次编译和快速的特点。代码如下:1、首先建立

ORACLE专栏 709

扣子Coze工作流教程:采集公众号爆文,一键仿写自动发布

通过本教程,你学会了如何利用扣子(Coze)平台构建一个完整的公众号文章自动处理工作流。这个系统不仅能够大幅提升内容产出效率,还能通过AI二创保持内容新鲜度和原创性。最佳实践建议:初次使用时,建议先保存为草稿而不是直接发布,以便人工审核;从简单的工作流开始,逐步增加复杂度;定期检查工作流运行日志,优化节点配置。自动化内容创作是新媒体运营的未来趋势,掌握这项技能将使你在数字内容领域占据显著优势。

互联网架构师笔记 1238

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

oracle的存储过程实现数据分页

因为oracle 中的存储过程无法像SQLServer的存储过程直接返回结果集,所以要返回结果集就得使用引用游标, 首先定义一个包,在包中定义一个引用游标。 create or replace package pkg_query as   type cur_query is ref cursor; end pkg_query; 创建实现分页的存储过程: CREA

CTO成长之路——Rosanu 893

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

oracle程序包实现分页,Oracle 存储过程实现分页

--1、首先建立一个包,用户创建一个游标类型CREATE OR REPLACE PACKAGE PKG_QUERY ASTYPE CUR_QUERY IS REF CURSOR;END PKG_QUERY;--2、创建存储过程CREATE OR REPLACE PROCEDURE PRC_QUERY(P_TABLENAME    IN VARCHAR2,   --表名P_STRWHERE     ...

weixin_35537635的博客 199

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

php调用存储过程实现分页,Oracle存储过程实现分页

--book表CREATE TABLE book(book_id VARCHAR2(20),book_name VARCHAR2(100),book_publish VARCHAR2(100)); --in表示输入参数,默--book表CREATE TABLE book(book_id VARCHAR2(20),book_name VARCHAR2(100),book_publish VARCHA...

weixin_29391349的博客 131

Oracle存储过程,ibatis实现分页

1、oracle 分页存储过程脚本 create or replace procedure Pagination(Pindex in integer, --页号  从1开始                                         Psql   in varchar2, --查询语句                                         Psize...

牧狼人 204

oracle分页存储过程不用游标,如何在Oracle存储过程中实现分页

在oracle的sqlplus或其他工具中运行一下pl/sql块建立存储过程--------------------------------------------------------------分页存储过程--------------------------------------------------------------创建包create or replace package tes...

weixin_28718487的博客 203

在Oracle存储过程中正确的实现分页

在Oracle存储过程中正确的实现分页在实际中的应用比例还是占为多数的,如果你对这一相关技术,心存好奇的话,以下的文章将会给你提供Oracle存储过程中正确的实现分页的好用的操作方案。   几乎每一个WEB应用都会用到分页,因此,将其做得通用高效就变得非常重要了,根据自己的想法用Oracle存储过程做了一个分页的存储过程,与大家分享,希望能够通过讨论得到更好的解决方案。   之所以用存储过程,

IT忍者神龟 701

oracle实现分页的存储过程

  第一步:创建包及其游标 代码如下: Code: ----建包及创建游标--------      CREATE OR REPLACE PACKAGE sp_package_page AS    TYPE pages_cursor IS REF CURSOR;   END;      -

vincent_noveltly的专栏 427

oracle分页存储过程不用游标,在Oracle存储过程中正确的实现分页

在Oracle存储过程中正确的实现分页在实际中的应用比例还是占为多数的,如果你对这一相关技术,心存好奇的话,以下的文章将会给你提供Oracle存储过程中正确的实现分页的好用的操作方案。几乎每一个WEB应用都会用到分页,因此,将其做得通用高效就变得非常重要了,根据自己的想法用Oracle存储过程做了一个分页的存储过程,与大家分享,希望能够通过讨论得到更好的解决方案。之所以用存储过程,是因为以后需要修...

weixin_34749016的博客 254

Oracle之存储过程实现分页

存储过程如下: --开发一个包    --建立一个包,在该包中,我定义类型test_cursor,是个游标。 如下:    create or replace package testpackage as     TYPE test_cursor is ref cursor;      end testpackage;            --开始编写分页的过程

Alsyuan的博客 520

一个简单的oracle分页存储过程的实现和调用

在看了众多的分页存储过程以后发现都是针对sqlserver的,而没有oracle的,因此想写一个关于oracle的存储过程,因为我用到的数据库是oracle.-------------------------------------------------------------------------------------------------------------------------

一个人追求的目标越高,就越能激发出他的才能. 1614

Oracle存储过程实现分页

       几乎每一个WEB应用都会用到分页,因此,将其做得通用高效就变得非常重要了,根据自己的想法用存储过程做了一个分页的存储过程,与大家分享,希望能够通过讨论得到更好的解决方案。         之所以用存储过程,是因为以后需要修改的话不需要修改程序代码,只需要修改存储过程的代码。但这个例子是在存储过程里动态生成的SQL语句,不知道会不会因此失去存储过程一次编译和快速的特点。代码如下:

郁金香 652
上一篇: java动态代理分析
下一篇: PL/SQL小例子
lk231_java
博客等级 码龄15年 0粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值