oracle存储过程 处于无效状态
createorreplaceprocedureck_yhckzlisbegininsertintotemp_syckzl_zy(lb,ed)select'银行存款总额'...
create or replace procedure ck_yhckzl
is
begin
insert into temp_syckzl_zy (lb,ed) select '银行存款总额', sum(zjyhzhyeb_dqye)/1000000 from v_ck;
insert into temp_syckzl_zy (lb,ed) select '账户总数',sum(jgzhgs) from v_jtqzys;
insert into temp_syckzl_zy (lb,ed) select '银行个数', max(rownum) from (select distinct zjzh_bankid from v_Ckyeb group by zjzh_bankid);
select * from temp_syckzl_zy
delete temp_syckzl_zy
end;
【不知道语句有没有错误,但create的时候,没报错误】
结果call ck_yhckzl();的时候
【请教各位老师,问题出在哪里? 多谢了】 展开
is
begin
insert into temp_syckzl_zy (lb,ed) select '银行存款总额', sum(zjyhzhyeb_dqye)/1000000 from v_ck;
insert into temp_syckzl_zy (lb,ed) select '账户总数',sum(jgzhgs) from v_jtqzys;
insert into temp_syckzl_zy (lb,ed) select '银行个数', max(rownum) from (select distinct zjzh_bankid from v_Ckyeb group by zjzh_bankid);
select * from temp_syckzl_zy
delete temp_syckzl_zy
end;
【不知道语句有没有错误,但create的时候,没报错误】
结果call ck_yhckzl();的时候
【请教各位老师,问题出在哪里? 多谢了】 展开
展开全部
1、你的存储过程有错误,编译不通过。处理于无效状态。
2、问题
存储过程中隐式游标的select 语句必须要有into子句。
而 select * from temp_syckzl_zy 这是一个没有意义的语句;
应改为如:select col1 into v_col1 from temp_syckzl_zy;
注:col1为表中一字段,v_col1为一变量
更多追问追答
追答
from temp_syckzl_zy 这个符合这个条件的记录不止一行,而且很多行
select lb,ed into是隐式游标,只能传一个内容进去
select lb,ed into lb,ed from temp_syckzl_zy where (加限制条件 ,取一行数据,如 rownum = 1)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询