Oracle 定义存储过程 不能执行,处于无效状态。
两张表xiaoming,xiaoli练习存储过程。createorreplaceproceduredel_xiao(balanceid1innumber)isbeginu...
两张表xiaoming, xiaoli 练习存储过程。
create or replace procedure del_xiao
(balanceid1 in number)
is
begin
update from xiaoli set xiaoli.balance=balance-200 where xiaoming.balanceid=1
if SQL%ROWCOUNT = 0 then
RAISE_APPLICATION_ERROR(-20123, 'Invald product code', TRUE);
end if;
update from xiaoming set xiaoming.balance=balance+200 where xiaoming.balanceid=1
if SQL%ROWCOUNT = 0 then
RAISE_APPLICATION_ERROR(-20123, 'Invald product code', TRUE);
end if;
commit;
exception when others then
rollback;
end;
将xiaoli的钱转200个xiaoming,但是执行call del_xiao(1)的 的时候报错,无效状态。 展开
create or replace procedure del_xiao
(balanceid1 in number)
is
begin
update from xiaoli set xiaoli.balance=balance-200 where xiaoming.balanceid=1
if SQL%ROWCOUNT = 0 then
RAISE_APPLICATION_ERROR(-20123, 'Invald product code', TRUE);
end if;
update from xiaoming set xiaoming.balance=balance+200 where xiaoming.balanceid=1
if SQL%ROWCOUNT = 0 then
RAISE_APPLICATION_ERROR(-20123, 'Invald product code', TRUE);
end if;
commit;
exception when others then
rollback;
end;
将xiaoli的钱转200个xiaoming,但是执行call del_xiao(1)的 的时候报错,无效状态。 展开
4个回答
展开全部
无效状态有两种可能,一种是你的存储过程编辑没有成功,创建了,但里面有语法错误。
还有一种是存储过程使用的表有结构上的改变,需要重新编译一下。
你重新编译一下,如果不成功,就是有语法问题,你需要修改存储过程。
还有一种是存储过程使用的表有结构上的改变,需要重新编译一下。
你重新编译一下,如果不成功,就是有语法问题,你需要修改存储过程。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
谁能帮我看下这个存储过程有语法问题吗?
create or replace procedure multinsert(beg in int ,cnt in int)
is
begin
declare icnt int default 0;
declare tmp int default 0;
while icnt<cnt do
set icnt=icnt+1;
set tmp=beg+icnt;
insert into ta(id,ia) values(tmp,tmp);
end while;
commit;
end multinsert;
create or replace procedure multinsert(beg in int ,cnt in int)
is
begin
declare icnt int default 0;
declare tmp int default 0;
while icnt<cnt do
set icnt=icnt+1;
set tmp=beg+icnt;
insert into ta(id,ia) values(tmp,tmp);
end while;
commit;
end multinsert;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
两个update后的from都去掉
更多追问追答
追问
不好意思复制错了
from去掉也错了,还是无效状态。
追答
你创建 procedure 报错了没有,解决创建的错误啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询