"ORA-06550: line 1, column 7:\nPLS-00201: identifier 'DOTNOT.DOTNETPAGERECORDSCOUNT' must be declared\nORA-06550: line 1, column 7:\nPL/SQL: Statement ignored\n"现下面的问题怎样解决,错在那里?
解决方案 »
- 请教大神!如何使程序支持多种数据库?! 【所有积分就90了 大家见谅】
- 如何在无安装客户端或其他软件的情况下实现VBA连接oracle
- 求助,比较急!
- 查询优化问题
- 关于基于oracle数据开发的应用系统,中的操作员之间的通讯问题。请高手指点思路!谢谢!
- 我在dos下调用.bat执行.ext文件 参数如何设定??
- 遍历树结构表
- 用wrap加密包体出错,请各位大虾帮忙,急!急!急!
- 高手请进,安装与设置问题!
- oracle8的调试问题:从游标中读不到记录?
- access 中的嵌套查询在oracle里怎么实现?
- PowerDesigner设计Oracle9i表,生成的脚本中表名和列名自动带双引号,怎么能去掉双引号?
-- Created : 2004-12-13 13:30:30
-- Purpose :
TYPE type_cur IS REF CURSOR; --定义游标变量用于返回记录集
PROCEDURE DotNetPagination(
Pindex in number, --分页索引
Psql in varchar2, --产生dataset的sql语句
Psize in number, --页面大小
Pcount out number, --返回分页总数
v_cur out type_cur --返回当前页数据记录
);
procedure DotNetPageRecordsCount(
Psqlcount in varchar2, --产生dataset的sql语句
Prcount out number --返回记录总数
);
end ;-------------------------------------------------------------------------------create or replace package body DotNet is --***************************************************************************************
PROCEDURE DotNetPagination(
Pindex in number,
Psql in varchar2,
Psize in number,
Pcount out number,
v_cur out type_cur
)
AS v_sql VARCHAR2(1000);
v_count number;
v_Plow number;
v_Phei number;
Begin
------------------------------------------------------------取分页总数
v_sql := 'select count(*) from (' || Psql || ')';
execute immediate v_sql into v_count;
Pcount := ceil(v_count/Psize);
------------------------------------------------------------显示任意页内容
v_Phei := Pindex * Psize + Psize;
v_Plow := v_Phei - Psize + 1;
--Psql := 'select rownum rn,t.* from cd_ssxl t' ; --要求必须包含rownum字段
v_sql := 'select * from (' || Psql || ') where rn between ' || v_Plow || ' and ' || v_Phei ; open v_cur for v_sql;
End ;
--**************************************************************************************
procedure DotNetPageRecordsCount(
Psqlcount in varchar2,
Prcount out number
)
as
v_sql varchar2(1000);
v_prcount number;
begin
v_sql := 'select count(*) from (' || Psqlcount || ')';
execute immediate v_sql into v_prcount;
Prcount := v_prcount; --返回记录总数
end DotNetPageRecordsCount;
--**************************************************************************************
end ;下面是c#代码
//分页存储过程
//Create By Wcy
//Create Date:2006-07-31
public static void GridBind(C1.Web.C1WebGrid.C1WebGrid fDataFrid,int pindex ,String psql,int psize,TextBox pcount)
{
string strcn=System.Configuration.ConfigurationSettings.AppSettings["connection_string"];
OracleConnection gCn;
OracleCommand Cmd;
//OracleDataAdapter adp;
OracleDataReader dr; try
{
gCn=new OracleConnection(strcn);
gCn.Open();
Cmd=new OracleCommand(psql,gCn);
Cmd.CommandType = CommandType.StoredProcedure;
Cmd.CommandText="DotNot.DotNetPageRecordsCount";
Cmd.Parameters.Add("psqlcount", OracleType.VarChar).Value = psql;
Cmd.Parameters.Add("prcount", OracleType.Number).Direction = ParameterDirection.Output;
Cmd.ExecuteNonQuery();
fDataFrid.AllowPaging = true;
fDataFrid.AllowCustomPaging = true;
fDataFrid.PageSize = psize;
fDataFrid.VirtualItemCount =int.Parse(((Decimal)Cmd.Parameters["prcount"].Value).ToString());
Cmd.Parameters.Clear();
Cmd.CommandText = "DotNot.DotNetPagination";
Cmd.Parameters.Add("pindex", OracleType.Number).Value = pindex;
Cmd.Parameters.Add("psql", OracleType.VarChar).Value = psql;//"select rownum rn,t.* from cd_ssxl t"
Cmd.Parameters.Add("psize", OracleType.Number).Value = psize;
Cmd.Parameters.Add("v_cur", OracleType.Cursor).Direction = ParameterDirection.Output;
Cmd.Parameters.Add("pcount", OracleType.Number).Direction = ParameterDirection.Output;
// adp=new OracleDataAdapter(Cmd);
// DataTable Dt=new DataTable();
// adp.Fill(Dt);
// fDataFrid.DataSource=Dt;
// fDataFrid.DataBind();
dr = Cmd.ExecuteReader();
fDataFrid.DataSource = dr;
fDataFrid.DataBind();
dr.Close();
pcount.Text=((int)Cmd.Parameters["pcount"].Value).ToString();
gCn.Close(); }
catch (System.Exception Ex)
{
throw(Ex);
}
finally
{
gCn=null;
Cmd=null;
//adp=null;
}
}