我对此感到非常疯狂。我目前正在编写一个触发器来更改一些日期。为此,我想将最大值放入变量中,如下所示:
SELECT date INTO datevar
FROM table
WHERE date = (SELECT MAX(date)
FROM table
WHERE condition = loop.condition);
触发器总是在此查询的行上抛出 ORA-01422(返回的行数过多);但是当我在我的 sqldeveloper 中尝试查询时(用数字替换循环值),查询工作正常,任何数据集(工作正常 = 正好返回一行)。
我尝试了不同的方法来将最大值选择到我的 var 中,但每次都是同样的问题。循环工作正常(当我将触发器作为带有详细日志记录的存储过程运行时,我看到循环行 ID 和所有内容),但它总是以所述错误开始而不写入数据库。
我也搜索了网络,但我没有找到任何东西。我会很感激任何想法。