0
오라클 객체 유형 배열을 생성하려고하는데 초기화 관련 오류가 발생합니다.Oracle 객체 배열 초기화 콜렉션
아래는 아래 콘솔에 오류가있는 샘플 스크립트
set serveroutput on
DECLARE
r1 rectangle;
r2 rectangle;
type rect_arr is table of rectangle;
m_rect rect_arr;
BEGIN
m_rect.extend;
m_rect(1) := rectangle(10,20);
sop(m_rect(1).area);
END;
아래 실행하려면 샘플 코드
CREATE OR REPLACE TYPE rectangle AS OBJECT
(
-- The type has 3 attributes.
length NUMBER,
width NUMBER,
area NUMBER,
-- Define a constructor that has only 2 parameters.
CONSTRUCTOR FUNCTION rectangle(length NUMBER, width NUMBER)
RETURN SELF AS RESULT
);
CREATE OR REPLACE TYPE BODY rectangle AS
CONSTRUCTOR FUNCTION rectangle(length NUMBER, width NUMBER)
RETURN SELF AS RESULT
AS
BEGIN
SELF.length := length;
SELF.width := width;
SELF.area := length * width;
RETURN;
END;
END;
입니다 ----- 내가이 오류를 초기화와 관련이 알고, 다양한 생성자와 멤버 함수 솔루션을 시도했지만 도움이되지는 못했습니다.
오류보고 : ORA-06531 : ORA-06,512 초기화 컬렉션 에 참조 : 06531. 00000 선로 (7)의 - "초기화 컬렉션 참조"* 원인 : 중첩 테이블의 요소 또는 부재 함수 또는 초기화 된 컬렉션이없는 (초기화 된 컬렉션이 필요한 경우) 이 참조되었습니다. * 동작 : 적절한 생성자 또는 전체 개체 할당을 사용하여 컬렉션을 초기화하십시오.
감사합니다. –