数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

oracle多条件查询分页存储过程


发布日期:2021年05月30日
 
oracle多条件查询分页存储过程

项目接近尾声了感觉将业务逻辑放到oracle中使得后台代码很精简oracle很有搞头!

PL\SQL:

create or replace procedure proc_client_List 客户多条件查询

(

pro_cursor out pkg_orderp_cursor 查询结果集

characters_ in varchar客户性质

states_ in varchar客户状态

type_ in varchar客户类型

calling_ in varchar客户行业

name_ in varchar客户名称

beginTime_ in date创建日期上限

endTime_ in date创建日期上限

area_ in number客户地区

clientsource_ in varchar客户来源

importent_ in varchar重要程度

start_row in number结果集起始行

end_row in number结果集结束行

) is

sql_str varchar():=

select * from

( select row_* rownum rownum_ from

(

select * from clientinfo c

where(:characters_ is null or ccharacters like :characters_)

and (:states_ is null or cstates like :states_)

and (:type_ is null or ctype like :type_)

and (:calling_ is null or ccalling like :calling_)

and (:name_ is null or cname like :name_)

and (:beginTime_ is null or ccreatetime > :beginTime_)

and (:endTime_ is null or ccreatetime < :endTime_)

and (:area_ is null or carea=:area_)

and (:clientsource_ is null or cclientsource like :clientsource_)

and (:importent_ is null or cimportent like :importent_)

) row_ where rownum <= :end_row

)

where rownum_ > :start_row;

begin

open pro_cursor for sql_str using

characters_%||characters_||%

states_%||states_||%

type_%||type_||%

calling_%||calling_||%

name_%||name_||%

beginTime_beginTime_

endTime_endTime_

area_area_

clientsource_%||clientsource_||%

importent_%||importent_||%

end_rowstart_row;

end proc_client_List;

/

上一篇:全面探讨PL/SQL的复合数据类型

下一篇:Oracle中实现布尔类型