日期:2014-05-17  浏览次数:20767 次

各位大神求教 PLS-00103
CREATE OR REPLACE PROCEDURE UP_GetHBBZByPage
  @tblName varchar(255),
  @fldName varchar(255), -- 排序字段名
  @PageSize int = 10, -- 页尺寸
  @PageIndex int = 1, -- 页码
  @IsReCount bit = 0, -- 返回记录总数, 非 0 值则返回
  @OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
  @strWhere varchar(1000) = '1=1' -- 查询条件 (注意: 不要加 where)
  AS
  declare @begin int ,@end int,@sql varchar(4000),@order varchar(5)
  set @begin=@PageSize* (@PageIndex-1) +1
  set @end=@begin+@PageSize-1
  set @order=''
  if(@OrderType=1)
  set @order=' desc'
  set @sql='
  select * from
  (
  select ROW_NUMBER() over(order by ' + @fldName + @order +' ) as od,
  * from '+@tblName +' where ' + @strWhere + ') as tbl where od between ' + rtrim(ltrim(str(@begin)))+' and ' + rtrim(ltrim(str(@end)))
  exec (@sql)
  if(@IsReCount=1)
  exec('select count(*) from '+ @tblName+' where ' +@strWhere)



错误 是 第二行

  @tblName varchar(255),

  错误:PLS-00103: 出现符号 "@"在需要下列之一时:符号IS 在 @之前插入 是什么意思求解答




------解决方案--------------------
发错版块了,转到SQLSERVER版块吧
------解决方案--------------------
这是sqlserver的存储过程 在Oracle里不能编译执行的 需要根据逻辑重新编写