我有一个非常奇怪的问题。
我有以下查询:
dbms_output.put_line('Prefix : ' || prefix || 'Vendor ID :' || vendor_id);
select r.rate
into rate
from rates r
where r.quality = 0
and r.vendor_id = vendor_id
and r.prefix = prefix
and r.direction = 'OUT'
and r.calendar_value = 0
and (sysdate-(1/24/60) >= r.effective_date_from
and sysdate-(1/24/60) < nvl(r.effective_date_to, sysdate));
现在 rate、vendor_id 和 prefix 是 3 个变量,所有 3 个都是数字。这个查询在一个存储过程中,在这个查询之前我输出了两个 vars,它打印Prefix : 5 Vendor ID : 361
这个查询落在ORA-01422: exact fetch returns more than requested number of rows
5
问题是,如果我使用and将此查询复制/粘贴到过程之外的单独 SQL 查询361
,我会得到 1 行。
有谁知道为什么会发生这种情况?我在 Oracle 11g 上