これは私の最初の質問です。私は学校でこのような作業をしています。名前、親、金、市の列を持つテーブルがあります。出力名、金額、子孫の平均金額 がその人のお金よりも大きいことが確かな子孫です。pl/sqlを使った階層クエリタスク
私は
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は下線が引かれて、START WITH句である...このコードを記述しますが、エラーを理解することはできません。
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:
このコードで私の間違いを教えてください。
ありがとうございます。
正確なエラーメッセージを共有してください。問題を絞り込むために、テスト値を使用して独自のクエリを試すことができます。 –
投稿されたエラーメッセージは、コンパイルエラーがあることを示しています。それでは、コンパイルエラーが何であるか教えてください。 SQL \ * Plusでは、コードをコンパイルした後に 'show err'を実行します。あるいは、 'select * from user_errors'のクエリ。 **あなたの質問を**編集してこの情報を含めることを忘れないでください。また、別の無回答を投稿しないでください。 – APC