编译过程提示错误什么 PLS-00103: 出现符号 "("在需要下列之一时 := . ) , @ % default

ighack 2010-06-22 02:50:16
create or replace procedure pageset(pageno in number(3):=1 , pagesize in number(3):=1) is
pagecount number(3);
recordcount number(5);
begin
select count(*) into recordcount from student_info;
if mod(pagecount,pagesize)>0 then
pagecount := recordcount / pagesize +1;
else
pagecount := recordcount / pagesize;
end if;
if pageno <1 then
pageno := 1;
end if;
if pageno > pagecount then
pageno := pagecount;
end if;
select * from
(
select s.student_id,rownum as rown from student_info s
) where rown between pageno*pagesize-pagesize+1 and pageno*pagesize;
end pageset;


提示如下错误
PROCEDURE IGHACK.PAGESET 编译错误

错误:PLS-00103: 出现符号 "("在需要下列之一时:
:= . ) , @ % default
character
行:1
文本:create or replace procedure pageset(pageno in number(3):=1 , pagesize in number(3):=1)
...全文
2737 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xdy3008 2010-07-15
  • 打赏
  • 举报
回复
.........
minitoy 2010-07-12
  • 打赏
  • 举报
回复
可以指定默认值,但是参数的大小是不能指定的,去掉就可以了
ighack 2010-06-22
  • 打赏
  • 举报
回复
str_sql := 'select * from(select s.student_id,rownum as rown from student_info s) where rown between' || pageno*pagesize-pagesize+1 || 'and' || pageno*pagesize;
execute immediate str_sql;
ighack 2010-06-22
  • 打赏
  • 举报
回复
现在我用in out可以赋值

但是
select * from
(
select s.student_id,rownum as rown from student_info s
) where rown between pageno*pagesize-pagesize+1 and pageno*pagesize;

这一句提示
PROCEDURE IGHACK.PAGESET 编译错误

错误:PLS-00428: 在此 SELECT 语句中缺少 INTO 子句

ighack 2010-06-22
  • 打赏
  • 举报
回复
存储过程in传入的参数不能复制啊

我想做的是一个分页的过程
IT职场成长课 2010-06-22
  • 打赏
  • 举报
回复
只指定参数类型就行,不用指定大小,入参可以省略in。
改为

create or replace procedure pageset(pageno number, pagesize number)


你加:=1是想赋个初始值?
mahanso 2010-06-22
  • 打赏
  • 举报
回复
create or replace procedure pageset(pageno in number, pagesize in number)
is
pagecount number(3);
recordcount number(5);
begin
select count(*) into recordcount from student_info;
if mod(pagecount,pagesize)>0 then
pagecount := recordcount / pagesize +1;
else
pagecount := recordcount / pagesize;
end if;
if pageno <1 then
pageno := 1;
end if;
if pageno > pagecount then
pageno := pagecount;
end if;
select * from
(
select s.student_id,rownum as rown from student_info s
) where rown between pageno*pagesize-pagesize+1 and pageno*pagesize;
end pageset;


存储过程in传入的参数不能复制啊。

你想完成什么样需求呢?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧