2017-10-19 14 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つ以上のレコードがある場合、これは動作しません。

どうすれば問題を解決できますか?

+1

あなたはその機能をどのように忘れていますか? –

+0

あなたが日付を好きなら 'ROWNUM <2'を追加します。特定の生徒がいる場合は' student_id = 'を追加します。それ以外の場合は、コレクションまたはカーソルが必要です。 –

+0

"すべてのレコードの日付から年を取得する必要があります。"なぜあなたはTYPEを書くのか説明せずにこの質問を3回尋ねました。 '学生からの抽出物を選んで(s.dobから)s'あなたの必要性をjmeetsします。ではなぜTYPEですか?明らかにこれはあなたの宿題ですが、依然として要件が必要です。 – APC

答えて

0

select intoを実行すると、rdbmsは値が1つのみ返されるとみなし、変数が配列になると考えます。 NUMBER変数をオブジェクトの配列に設定することはできません。

関連する問題