这是我的第一个问题。我在学校里有这样的任务。我们有NAME,PARENT,MONEY,CITY栏目。我们的任务是为后代制作输出名称,金钱和平均金额。这是真的,平均金钱 后代的人数大于人的钱。
我编写此代码但无法理解错误...
CREATE OR REPLACE PROCEDURE rich_avg_descendant IS
cnt INTEGER;
BEGIN
FOR rec IN (SELECT name, money,AVG(money) FROM ourtable) loop
SELECT count(*) INTO cnt FROM ourtable
GROUP BY name
HAVING AVG(money)> rec.money
START WITH name = rec.name CONNECT BY PRIOR name = parent;
IF cnt > 0 THEN dbms_output.put_line(name,money,AVG(money)); END IF;
END loop;
END;
/
错误在START WITH子句中以START加下划线。
Error starting at line : 14 in command -
BEGIN rich_avg_descendant(); END;
Error report -
ORA-06550: line 1, column 7:
PLS-00905: object myschoolcode.RICH_AVG_DESCENDANT is invalid
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
你可以在这段代码中告诉我错误吗?
提前致谢。
答案 0 :(得分:0)
connect by子句应位于开头的子句
之前