次の 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
.