【发布时间】:2017-06-10 17:38:26
【问题描述】:
这是给我 PLS00130 的程序:遇到符号“END”错误。哪里有问题??我错过了什么吗?
CREATE OR REPLACE PROCEDURE GETHEATDATA(HEATNO NUMBER)
IS
BEGIN
FOR program IN (
select program_id from rml_program where heat_id=HEATNO
)
LOOP
select
program.program_id,
program.job_id,
program.grade,
count(t.semiproduct_cnt),
max(t.charging_date),
min(t.charging_date),
max(t.reheating_date),
min(t.reheating_date),
count(t.rejecting_date),
count(t.rolling_date),
count(t.loss_date)
from
rml_semiproduct t
where
t.program_id = program.program_id;
END LOOP;
END;
END GETHEATDATA;
【问题讨论】:
-
去掉结尾;?
-
要么删除倒数第二个 END 或最后一个 END GETHEATDATA
-
我试过了,但它给了我错误——PROCEDURE STM.GETHEATDATA 的编译错误错误:PLS-00302:必须声明组件“GRADE”行:11 文本:program.grade,错误:PL/ SQL:ORA-00904:“PROGRAM”。“GRADE”:无效标识符行:11 文本:program.grade,错误:PL/SQL:SQL 语句被忽略行:8 文本:select
-
@user3004692 正如 RLOG 在答案中指出的那样,您需要加入具有等级列的表,因为除了删除倒数第二个 END 或最后一个之外,程序不知道等级列结束 GETHEATDATA。