Oracle 我希望ORA-01422:exact fetch返回的行数超过请求的行数。问题是什么?
我希望ORA-01422:exact fetch返回的行数超过请求的行数唯一可以引发太多行的语句是Oracle 我希望ORA-01422:exact fetch返回的行数超过请求的行数。问题是什么?,oracle,oracle-apex,Oracle,Oracle Apex,我希望ORA-01422:exact fetch返回的行数超过请求的行数唯一可以引发太多行的语句是 create or replace trigger "AGE_TRIGGER4" BEFORE insert on CLIENT for each row DECLARE age DATE; BEGIN select DATA into age from CLIENT where "FIO" = :new."FIO"; if SYSDAT
create or replace trigger "AGE_TRIGGER4"
BEFORE
insert on CLIENT
for each row
DECLARE
age DATE;
BEGIN
select DATA into age from CLIENT where "FIO" = :new."FIO";
if SYSDATE-age > 27394 OR age is NULL Then
raise_application_error(-20001,'...');
end if;
end;
这意味着client
表中有多行具有相同的fio
列值。如果这是意料之中的,你应该设法处理它
- 例如,您可以选择
max(data)into age
- 或者,您可以引发异常,通知用户不能使用相同的
输入两(或更多)行。不过,您更愿意让数据库来处理它——在该列上创建一个唯一的索引fio
- 或者,在
子句中包含另一列,以进一步限制where
语句返回的值select
select DATA into age from CLIENT where "FIO" = :new."FIO";