PL/SQL中Ref Cursor的应用
PL/SQL作为oracle对于传统SQL语法的扩展,在跨系统事务处理以及对数据库大批量数据处理方面作用显著;而当前主流的MVC框架对DAO层的封装都是一条SQL语句返回一个记录集;当数据的关系比较复杂或数据量比较大的时候,与数据库的交互过于频繁将增大内网的数据传输量与数据库的IO.针对此类复杂的数据处理,可以采用PL/SQL程序包来实现其业务逻辑.
能在子程序之间共享数据的ref cursor在这方面狠大优势,下面是我自己写的一个例子:
程序包头:
Create or replace Package WesleyPackage
as
Type Test_CURSOR IS REF CURSOR;
Procedure SelectByProcedure( QueryRecordNumStatment1 in varchar ,QueryTotalRecordInfoStatment2 in varchar , QueryPageInfoStatment3 in varchar,CurrentPage4 in number , ShowRange5 in number , RecordNum6 out number ,TotalInfoRS7 out WesleyPackage.Test_CURSOR, PageInfoRS8 out WesleyPackage.Test_CURSOR );
End WesleyPackage;
程序包体:
--带有out参数的存储过程必须通过java jdbc的CallableStatement调用方式打印输出结果
--存储过程的参数不能为 ibatis中的 po对象
Set serveroutput on;
Create or replace Package Body WesleyPackage as
Procedure SelectByProcedure( QueryRecordNumStatment1 in varchar
,QueryTotalRecordInfoStatment2 in varchar
, QueryPageInfoStatment3 in varchar,CurrentPage4 in number
, ShowRange5 in number , RecordNum6 out number
,TotalInfoRS7 out WesleyPackage.Test_CURSOR
, PageInfoRS8 out WesleyPackage.Test_CURSOR ) as --注意没有Create
beginRowNum number;--当前页的首条记录的序号
endRowNum number; --当前页的末条记录的序号
showNum number; --根据查询得到的总条数和显示范围得到的一个较小值
showRecordPerPage number:= 30;--每页显示的条数
pageSQL varchar2(300);
Begin
execute immediate to_char(QueryRecordNumStatment1) i
相关文档:
为每个表对象返回一行。当前仅用于 sys.objects.type = U 的表对象。
列名 数据类型 说明
<继承的列>
有关此视图所继承的列的列表,请参阅 sys.objects
lob_data_space_id
int
一个非零值,是保存此表的 text、ntext 和 image 数据的磁盘空间(文件组或分区架构)的 ID。
0 = 表不包含 text、ntext ......
下列语句部分是Mssql语句,不可以在access中使用。
SQL分类:
DDL—数据定义语言(Create,Alter,Drop,DECLARE)
DML—数据操纵语言(Select,Delete,Update,Insert)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、说明:创建数据库
Create&nb ......
MSDN: http://msdn.microsoft.com/en-us/library/bb386976.aspx (英文)
http://msdn.microsoft.com/zh-cn/library/bb386976.aspx (中文)
ScottGu 的LINQ 系列:
Part 1: Introduction to LINQ to SQL
Part 2: Defining our Dat ......
查询速度慢的原因很多,常见如下几种:
1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷)
2、I/O吞吐量小,形成了瓶颈效应。
3、没有创建计算列导致查询不优化。
4、内存不足
5、网络速度慢
6、查询出的数据量过大(可以采用多 ......