我正在尝试创建一个PLSQL语句,用来自他们所有生物的所有生物的钱来更新角色库存中的钱
以下是我一直在尝试的代码:
{{1}}
inst_creature表中有一个character_id,用于定义与该生物作战的角色。
我收到了错误 ORA-01422:精确提取返回超过请求的行数。
我一直试图通过谷歌来解决这个问题,但到目前为止还没有任何工作。有什么想法吗?
答案 0 :(得分:2)
当一个角色杀死多个怪物时会发生什么? ORA-01422,那是什么。 SELECT ... INTO语法填充标量值,即一行。当查询返回多行时,PL / SQL会抛出ORA-01422。
"是否有任何解决方案可以使它工作?"
最简单的方法是修复查询,使其返回一行。当你只是为角色的宝库增加资金时,你可以使用聚合:
SELECT sum(inst_creature.money)
INTO inv_money
FROM inst_creature,character
WHERE inst_creature.character_id = character.ID;
因此,每个角色获得一行,每个角色获得一次更新。