ユーザー定義レコードの要素タイプで連想配列を使用しようとしています。この配列は、生徒の名、姓、および学年を印刷します。Oracle pl/sql - ユーザー作成レコードで連想配列を使用する
SET SERVEROUTPUT ON
DECLARE
TYPE studentRec IS RECORD (
STUDENT_ID studentdb.student.student_id%TYPE,
FIRST_NAME STUDENTDB.STUDENT.FIRST_NAME%TYPE,
LAST_NAME STUDENTDB.STUDENT.LAST_NAME%TYPE,
GRADE STUDENTDB.GRADE.NUMERIC_GRADE%TYPE
);
CURSOR studentCursor IS
SELECT STUDENT.STUDENT_ID, STUDENT.FIRST_NAME, STUDENT.LAST_NAME, AVG(GRADE.NUMERIC_GRADE) AS GRADE
FROM STUDENTDB.STUDENT
INNER JOIN STUDENTDB.GRADE
ON STUDENTDB.STUDENT.STUDENT_ID = STUDENTDB.GRADE.STUDENT_ID
GROUP BY STUDENT.STUDENT_ID, STUDENT.FIRST_NAME, STUDENT.LAST_NAME ;
sr studentRec;
TYPE studentArray IS TABLE OF studentRec INDEX BY PLS_INTEGER;
vars studentArray;
BEGIN
FOR rec IN studentCursor LOOP
vars(rec.STUDENT_ID) := rec.FIRST_NAME || ' ' || rec.LAST_NAME || ' has grade ' || rec.GRADE;
END LOOP;
FOR ind IN vars.FIRST .. vars.LAST LOOP
DBMS_OUTPUT.PUT_LINE(vars(ind));
END LOOP;
END;
これはスロー:
エラーレポート - ORA-06550:行27、列27:PLS-00382:式が間違った型ORA-06550の です:行27、列3:PLをORA-06550:行33、列1:PLS-00306: 'PUT_LINE'へのコールで、引数が で間違っていますORA-06550:行33、列1:PL/SQL: 文は無視されます 06550. 00000 - "行%s、列%s:\ n%s" *原因:通常はPL/SQLのコンパイル・エラーです。 処置: