declare
i_name DATA.ITEM_ID%TYPE;
i_content DATA.ITEM_DESC%TYPE;
begin
select ITEM_ID, ITEM_DESC //此行出错
into i_name,i_content
from DATA
where DATA.ITEM_SEQUENCE=8;
dbms_output.put_line('检查名称:'||i_name||',检查具体内容'||i_content);
end;
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 5
ORA-01422: exact fetch returns more than requested number of rows
这个错误的原因一般是查询到的数据大于一条导致的,不要用肉眼去查看查询条件是否唯一,调用相应的查询语句。
select * from DATA t WHERE t.ITEM_SEQUENCE=8
执行查询后,查看表中记录是否为一条。
另一种可能是建表时错误地给变量名加上了 ‘’(单引号)或者 “”(双引号),在查询时需要同时将相应的列名和表名加上对应的 ‘’(单引号)或者 “”(双引号),也可以编辑表,将其字段名还原成大写字母,更新后再次查询则错误不再触发。