存储过程中使用FETCH FIRST n ROWS ONLY小疑点

存储过程中使用FETCH FIRST n ROWS ONLY小问题
在存储过程中写select语句时,FETCH   FIRST   n   ROWS   ONLY中的n可不可以是定义好并已赋值的变量。
select   *   from   tbl   where   columnname=XXX;
这里的XXX可以用变量代替,我觉得FETCH   FIRST   n   ROWS   ONLY中的n也应该可以的。
但是deploy时老是出SQLSTATE:   42601错误。

------解决方案--------------------
那你改成row_number() over() as rn这种形式,看看是否可以
select a.*,row_number() over() as rn from tbl a where a.columnname=XXX and rn> XXX