【发布时间】:2017-08-23 10:51:22
【问题描述】:
我的 Company_Person_all 视图中有一行,在 EMPLOYEE_NAME 列中以“YENER UZUN”命名(我已经只想要一个结果)。当我向这个函数发送参数时(fname,而不是使用'YENER UZUN')我遇到
ORA-01422:exact fetch returns more than requested number of rows ...
我应该怎么做才能防止这个错误?此外,当我编写下面的代码('YENER UZUN',而不是 fname)时,没关系,它不会给我一个错误。
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;
【问题讨论】:
-
这不应该发生。你是如何调用函数并传入
fname值的? -
BEGIN dbms_output.put_line('something': '||company_person_api.Get_Calistigi_Santiye_By_Fname('YENER UZUN'));结尾; /* 像这样 */
-
并且这段代码只返回一行给我... select * from Company_Person where employee_name ='YENER UZUN';
-
调试它 - 更改过程以循环遍历返回的行并写出他们的employee_names和ROWIDs或类似的东西。
标签: oracle plsql select-into ora-01422