以下 PL/SQL 按预期成功执行:
declare
myCount number;
begin
select count(*)
into myCount
from myTable
where id = 1;
end;
但是,以下内容不会,而是会引发此错误:
ORA-01422: 精确提取返回的行数多于请求的行数
declare
myCount number;
myId number := 1;
begin
select count(*)
into myCount
from myTable
where id = myId;
end;
从概念上讲,我理解错误的含义,但我不知道它如何适用于我的情况。我所做的只是将硬编码的值移动到declare
块中的一个变量中。select
当它是完全相同的数字时,为什么会影响结果?
版本是Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
.