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();的时候

【请教各位老师,问题出在哪里? 多谢了】
展开
 我来答
0808xyj
推荐于2017-09-16 · TA获得超过1891个赞
知道大有可为答主
回答量:1237
采纳率:100%
帮助的人:1075万
展开全部
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)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式