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
相关文档:
最近由于系统的需求,所以要了解一下如何优化sql server,下面是我的一些总结,不足的地方希望大家批评指正。说要优化大家一定会想到索引,那我们就从索引开始吧。 微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引),下面 ......
引用
show me 的 SQL SERVER命令大全(值得学习的东西)
--语 句 功 能
--数据操作
SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER T ......
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 ......
内容转自:http://david.btbbt.blog.163.com/blog/static/205989372009973357418/
登录远程SQL服务器
一 看ping 服务器IP能否ping通。
这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查看配置,当然得确保远程sql server 2000服务器的IP拼写正确。
二 在Dos或命令行 ......