oracle 存储过程 循环
createorreplaceprocedurelibsys.add_money(moneyoutnumber)ascursorcurisselectamountfrom...
create or replace procedure libsys.add_money(money out number) as
cursor cur is select amount from libsys.money_record;
begin
money:=0;
for amount in cur loop
begin
money:=money+amount;
end;
end loop;
end add_money;
提示
306: 调用 '+' 时参数个数或类型错误
行号= 7 列号= 5 错误文本= PL/SQL: Statement ignored
的错误。
我这是第一次写存储过程,估计是哪有小语法错误。望高手指点。存储过程实现循环从libsys.money_record中取amount值(类型float(7)),然后把所有的amount加起来。平台oracle 9i. 展开
cursor cur is select amount from libsys.money_record;
begin
money:=0;
for amount in cur loop
begin
money:=money+amount;
end;
end loop;
end add_money;
提示
306: 调用 '+' 时参数个数或类型错误
行号= 7 列号= 5 错误文本= PL/SQL: Statement ignored
的错误。
我这是第一次写存储过程,估计是哪有小语法错误。望高手指点。存储过程实现循环从libsys.money_record中取amount值(类型float(7)),然后把所有的amount加起来。平台oracle 9i. 展开
3个回答
展开全部
for amount in cur loop
这个 amount 不是一个数字
for amountRecord in cur loop
begin
money:=money+amountRecord.amount ;
end;
这么写可能更容易理解一些。
这个 amount 不是一个数字
for amountRecord in cur loop
begin
money:=money+amountRecord.amount ;
end;
这么写可能更容易理解一些。
参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/db33b52993b8e23a359bf774.html
展开全部
create or replace procedure libsys.add_money(money out number)
as
cursor cur is
select amount from libsys.money_record;
begin
money:=0;
for amounts in cur loop
money:=money+amounts;
end loop;
end add_money;
as
cursor cur is
select amount from libsys.money_record;
begin
money:=0;
for amounts in cur loop
money:=money+amounts;
end loop;
end add_money;
追问
还是有错啊,一样的错误提示·
追答
create or replace procedure libsys.add_money(money out number)
as
cursor cur is
select amount from libsys.money_record;
begin
money:=0;
for Temp in cur loop
money:=money+Temp.amount; ---这里改成这样,Temp表示一个对象值 Temp.amount表示游标当前行值
end loop;
end add_money;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
amount转成整形啊to_number
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询