使用PL/SQL的PlhierArchical查询任务



这是我的第一个问题。我在学校里有这样的任务。我们的桌子上有列名称,父母,金钱,城市。真实的后代,平均金钱后代的资金大于该人的钱。

我编写此代码,但无法理解错误...

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;
/

错误是从启动下划线的子句开始。

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:

您可以在此代码中告诉我我的错误吗?

预先感谢。

by子句的连接应在开始之前使用子句

最新更新