+ -
当前位置:首页 → 问答吧 → 坐等高手找错给改下

坐等高手找错给改下

时间:2011-12-05

来源:互联网

CREATE OR REPLACE PROCEDURE CaseMessagePager
(
@pagesize int,--页大小
@pageindex int:=1,--页索引
@orderfield in varchar2,--排序字段
@ordertype in varchar2,--排序类型
@tabname in varchar2,--表名
@strwhere in varchar2,--条件
@returnColunm in varchar2,--返回的列
@tolrecord out number,--总记录
@tolpage out number --总页数
)
as

BEGIN
declare firstsql nvarchar(500)
if(@strwhere='')
set @firstsql='select @mytolrecord=count(*) from '+@tabname
else
set @firstsql='select @mytolrecord=count(*) from '+@tabname+' where '+@strwhere
exec sp_executesql @firstsql,N'@mytolrecord int output', @tolrecord output
set @tolpage=ceiling(@tolrecord*1.0/@pagesize)
declare @sql varchar(1000)
if(@strwhere='')
set @sql='select top '+convert(varchar(10),@pagesize)+' '+@returnColunm+' from '
+@tabname+' where policycode not in(select top '+convert(varchar(10),(@pageindex-1)*@pagesize)
  +' policycode from '+@tabname+' order by policycode asc) order by '+@orderfield+' '+@ordertype

else
set @sql='select top '+convert(varchar(10),@pagesize)+' '+@returnColunm+' from '
+@tabname+' where ('+@strwhere+') and (policycode not in(select top '+convert(varchar(10),(@pageindex-1)*@pagesize)
  +' policycode from '+@tabname+' order by policycode asc)) order by '+@orderfield+' '+@ordertype
print(@sql)
exec(@sql)
END CaseMessagePager;

作者: KingGJQ   发布时间: 2011-12-05

不贴报什么错
不贴过程的作用
不贴表结构

真不想看下去……

作者: dws2004   发布时间: 2011-12-05

PROCEDURE ZXDRB.CASEMESSAGEPAGER 编译错误

错误:PLS-00103: 出现符号 "@"在需要下列之一时:
  <an identifier>
  <a double-quoted delimited-identifier> current
行:4
文本:@pageindex int:=1,--页索引




sorry 刚刚有事出了 电脑卡了下 不好意思各位 本人菜鸟

作者: KingGJQ   发布时间: 2011-12-05

@ 符号在oracle中不要用 你这个是oracle数据库吗

作者: programmerxiaocai   发布时间: 2011-12-05

这是SQL SERVER的写法,跑到ORACLE里来问……

作者: hupeng213   发布时间: 2011-12-05

你的写法时sql server的不是oracle的语法!

作者: nvhaixx   发布时间: 2011-12-05

各位大神 sql 编辑成oracle的写法呢? 学习下

作者: KingGJQ   发布时间: 2011-12-05