2017-08-23 6 views
-1

EMPLOYEE_NAME列の 'YENER UZUN'という名前の私のCompany_Person_allビューに1行しかありません。私はこの機能(代わりに「YENERウズン」を使用してのfnameは、)にパラメータを送信すると、私はこのエラーを防ぐために何をすべきora-01422 SELECTİNTO文のエラー

ORA-01422:exact fetch returns more than requested number of rows ... 

に遭遇しますか?また、以下のコード(fnameの代わりに 'YENER UZUN')を書いても大丈夫ですが、エラーが出ることはありません。

FUNCTION Get_Calistigi_Santiye_By_Fname(fname IN varchar2) 
    RETURN varchar2 
IS 
    temp_ varchar2(100); 
BEGIN 
    select free_field6 
    into temp_ 
    from company_person_all 
    where employee_name = 'YENER UZUN'; 

    DBMS_OUTPUT.put_line(temp_); 
    RETURN temp_; 
END; 
+0

これは起こりません。どのように関数を呼び出して 'fname'値を渡していますか? –

+0

BEGIN dbms_output.put_line( 'something': '|| company_person_api.Get_Calistigi_Santiye_By_Fname(' YENER UZUN ')); END;/*このように*/ –

+0

このコードは1行だけ返します。 select * from Company_Person where employee_name = 'YENER UZUN'; –

答えて

0

「fname」パラメータ名を「xyz」に変更して解決しました。 'fname'は、パッケージ内の他のプロシージャや関数によってRECORDインスタンス名で使用されていました。 パラメータ名を変更すると、エラーが即座に修正されます。

+0

私は、少なくとも 'fname'と呼ばれるOracleのグローバルパラメータについては知りません。 – XING

+0

これは、IFSという名前のOracleベースのERPシステムです。私はなぜそれが私の問題を正確に解決したのか分からなかった。しかし、パラメータ名を変更することは冗談ではなく、このエラーを解決しました。 –

+0

あなたが不明であることに従わないでください。それは今あなたを助けるかもしれないが、どこか他の人が傷つけるでしょう。私のソリューションを試して、それが動作するかどうかを確認してください – XING