这段代码应该是2部分 ,--上面是存储过程 --的下面是实行存储过程的语句,你这种写法类似于SQLSever的写法,在Oracle的有可能执行不下去。把这两段代码放在两个窗体里执行分开执行,就不会出错了。
执行的时候这样
DECLARE
BEGIN
pingpon('男子乒乓球比赛','万军','西欧');
dbms_output.put_line('已经插入成功');
END;
顺便说一句,你创建的时候insert into后,需要commit,否则只在当前session有效,当你页面关闭后,你会发现数据没插进去
改一下
insert into pingpong_matchs(matchid,matchname,palyera,playerb) values (seq_pingpong.nextval,name,a,b);
commit;
没看懂你后面一段时做什么的。你的存储过程在 end pingpom;处已经结束了。
如果你要声明变量的话,在第一个begin的前面就声明。然后执行A,B和a,b两个insert语句。
你的变量全部写在is 和begin 之间,而且不用declare!
存储过程应该只包含前面一段,注释号后面的应该是在一个SQL窗口中调试用的,不要和存储过程写在一起
为什么你的存储过程申明了三个输入参数,但是底下调用的时候传入了四个参数?