--创建类型
create or replace package myPackage
as
type refCursor is ref cursor;
end;--创建存储过程
create or replace procedure GetEventsPages
(
PageSize number default 10,
PageIndex number default 1,
docount int default 0,
ResultCur out myPackage.refCursor
)
is
v_sql varchar2(4000);
v_lower number;
v_upper number;
begin
if docount=1 then
open ResultCur for select count(1) as "count" from vPrompShow;
return;
end if; v_lower:=(PageIndex-1)*PageSize;
v_upper:=v_lower+PageSize;
v_sql:=' select rownum as "id"
,T.*
from (
select O.Title as "Title"
,O.ProjectName
,O.TypeOf
,O.FromUser
,O.CreateTime
from vPrompShow O
order by O.CreateTime desc
) T
where rownum between :lower and :upper
';
open ResultCur for v_sql using v_lower,v_upper;
end;
create or replace package myPackage
as
type refCursor is ref cursor;
end;--创建存储过程
create or replace procedure GetEventsPages
(
PageSize number default 10,
PageIndex number default 1,
docount int default 0,
ResultCur out myPackage.refCursor
)
is
v_sql varchar2(4000);
v_lower number;
v_upper number;
begin
if docount=1 then
open ResultCur for select count(1) as "count" from vPrompShow;
return;
end if; v_lower:=(PageIndex-1)*PageSize;
v_upper:=v_lower+PageSize;
v_sql:=' select rownum as "id"
,T.*
from (
select O.Title as "Title"
,O.ProjectName
,O.TypeOf
,O.FromUser
,O.CreateTime
from vPrompShow O
order by O.CreateTime desc
) T
where rownum between :lower and :upper
';
open ResultCur for v_sql using v_lower,v_upper;
end;
解决方案 »
- 这样的查询语句怎么写,请进
- 存储过程的参数能否是一个多维数组
- 麻烦各位高手了!!!!帮忙看看到底那里出错了
- Oracle10g删除表格之后出现乱名
- 为什么我的执行计划没有Cost 和 cardinality信息
- 用MSDAORA open Oracle数据库的异常问题
- Oracle,导出XML的问题( oracle.xml.sql.OracleXMLSQLException: Cannot map Unicode to Oracle character.)(急!)
- 怪事,我重新配置了net manager 后,一个表的数据竟然发生变化
- 求循环语句语法!在存储过程中使用.
- 无法安装oracle8.1.7 急
- 我新建了表空间为什么看不到啊
- 建表的串太长怎么办????
try
{
conn.Open();
OracleCommand cmd = new OracleCommand("GetEventsPages", conn); cmd.CommandType = CommandType.StoredProcedure;
OracleParameter PageSize = new OracleParameter("PageSize", OracleType.Number);
PageSize.Value = 10;
cmd.Parameters.Add(PageSize);
OracleParameter PageIndex = new OracleParameter("PageIndex", OracleType.Number);
PageIndex.Value = 1;
cmd.Parameters.Add(PageIndex);
OracleParameter docount= new OracleParameter("docount", OracleType.Int32);
docount.Value = 0;
cmd.Parameters.Add(docount);
OracleParameter parm = new OracleParameter("ResultCur",OracleType.Cursor);
parm.Direction = ParameterDirection.Output;
cmd.Parameters.Add(parm);
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds);
this.GridView1.DataSource = ds.Tables[0].DefaultView;
this.GridView1.DataBind();
}
catch
{
throw;
}
finally
{
conn.Close();
}
(
PageSize number,
PageIndex number,
docount int,
ResultCur out system.myPackage.refCursor
)
is
v_sql varchar2(4000);
v_lower number;
v_upper number;
begin
if docount=1 then
open ResultCur for select count(1) as "count" from vPrompShow;
return;
end if; v_lower:=(PageIndex-1)*PageSize;
v_upper:=v_lower+PageSize;
v_sql:=' select *
from
(
select rownum as "ID"
,T.*
from (
select O.Title as "Title"
,O.ProjectName
,O.TypeOf
,O.FromUser
,O.CreateTime
from vPrompShow O
order by O.CreateTime desc
) T
)TB
where TB.ID between :lower and :upper
';
open ResultCur for v_sql using v_lower,v_upper;
end;
My QQ :43466761
我照你的方法去做,它报错了啊:异常详细信息: System.Data.OleDb.OleDbException: ORA-06550: 第 1 行, 第 7 列: PLS-00306: 调用 'GETEVENTSPAGES' 时参数个数或类型错误 ORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored源错误:
行 92: catch
行 93: {
行 94: throw;
行 95: }
行 96: finally
*******************************************************请问怎么解决,还请帮忙一下。。
谢谢~