2017-10-19 1 views
0

Oracle 데이터베이스의 모든 레코드에서 날짜를 가져와야합니다. 다음은 내 시도입니다 :Oracle 추출물에서 여러 레코드를 검색 할 수 없습니다.

CREATE or replace TYPE BODY student_t AS MEMBER FUNCTION getYear RETURN NUMBER IS 
yearDOB NUMBER; 
BEGIN 
    SELECT EXTRACT(YEAR FROM s.dob) INTO yearDOB 
    from student s; 
    return yearDOB; 
END;END;/                      

그러나 테이블에 두 개 이상의 레코드가있는 경우 작동하지 않습니다.

어떻게 문제를 해결할 수 있습니까?

+1

해당 기능을 정확히 어떻게 호출하고 있습니까? –

+0

어떤 날짜가 마음에 들면'ROWNUM <2'을 추가하십시오. 특정 학생이 있다면'student_id = '을 추가하십시오. 그렇지 않으면 콜렉션 또는 커서가 필요합니다. –

+0

"모든 기록에서 날짜를 가져와야합니다."왜 당신이 TYPE을 쓰는지 설명하지 않고이 질문을 세 번했습니다. '학생으로부터받은 추출물 (년부터 s.dob) '은 당신의 필요를 방해합니다. 왜 TYPE입니까? 분명히 이것은 당신의 숙제이지만 여전히 요구 사항이 필요합니다. – APC

답변

0

select into을 실행하면 rdbms는 하나의 값만 반환되거나 변수가 배열로 간주합니다. 개체 배열에 NUMBER 변수를 설정할 수 없습니다.

관련 문제