【发布时间】:2015-01-28 18:25:59
【问题描述】:
我正在尝试编写一个程序来检查我的某些表中的人员是否被正确分配。这是包中的第一个过程。如果每个人都被正确分配,SQL 将不返回任何记录。如果未分配人员,SQL 将返回未分配的人员。
...
BEGIN
FOR R_PEOPLE IN C_PEOPLE
LOOP
IF SQL%NOTFOUND THEN
RAISE_APPLICATION_ERROR(-20002, 'ALL PEOPLE ASSIGNED, PROCEED');
END IF;
-- When data is found, should raise exception and stop billing process
IF SQL%FOUND THEN
RAISE_APPLICATION_ERROR(-20001, 'MISSING PEOPLE');
END IF;
END LOOP;
END;
我要做的是向最终用户发出两条不同的消息,最终用户将在TOAD 中运行它。如果没有返回结果,每个人都被分配,我想输出第一个IF 语句“ALL PEOPLE ASSIGNED, PROCEED”。如果 SQL 返回记录,那么理想情况下,我希望第二个 IF 执行“MISSING People”。
目前,当有人失踪时,我会向用户输出“MISSING PEOPLE”。但是如果每个人都已经被分配,我只会得到“程序完成”。
【问题讨论】:
标签: plsql