简单搞一下 Oracle 存储过程动态SQL之获取查询总数!

本文介绍了一个使用PL/SQL开发的存储过程,该过程实现了动态SQL分页功能。通过传入商品类型和关键字参数,可以灵活地进行商品搜索,并返回匹配的商品总数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的搞一下PL/SQL 存储过程开发

动态SQL实现 存储过程分页

procedure proc_goods_search_count(p_type number,
p_keywords
varchar2,
p_number out
number) is
v_sql
varchar2(4000);
begin
v_sql :
=' select count(*)
from lt_goods a
where a.status = 2
';

if p_type isnotnulland p_type <>0then
v_sql :
= v_sql ||' and a.goods_type ='|| p_type;
endif;
if p_keywords isnotnullthen
v_sql :
= v_sql ||' and a.goods_name like ''%'|| p_keywords ||'%''';
endif;

execute immediate v_sql
into p_number;

end proc_goods_search_count;

获取查询商品总数存储过程定义

procedure proc_goods_search_count(p_type number,
p_keywords
varchar2,
p_number out
number)

传入参数:商品类型 p_type、查询关键字 p_keywords

传出参数:查询总数 p_number 

带组装动态SQL字符串

v_sql varchar2(4000);

商品类型判断筛选

if p_type isnotnulland p_type <>0then
v_sql :
= v_sql ||' and a.goods_type ='|| p_type;
endif;

关键字匹配

if p_keywords isnotnullthen
v_sql :
= v_sql ||' and a.goods_name like ''%'|| p_keywords ||'%''';
endif;

动态执行SQL,并将执行结果复制与传出参数 p_number

execute immediate v_sql
into p_number;

转载于:https://www.cnblogs.com/darjuan/archive/2011/05/24/oracle_procedure.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值