我的程序的一部分为表qgame_history创建一个新记录。该表有一个id和一个结果字段。最新记录的结果为空。 我想使用隐式游标将其更改为1之类的数字。 id的数据类型为NUMBER(5,0),结果的数据类型为NUMBER(1,0)。我使用了以下代码,没有错误,但没有变化。有什么理由吗?
因为null将在最后一条记录中,所以它将在id最高的记录中,因此是max(history_id)。
set serveroutput on
DECLARE
cnumber qgame_history.history_id%TYPE;
CURSOR c1
IS
SELECT history_id INTO cnumber
FROM qgame_history
WHERE history_id = (SELECT MAX(history_id)
FROM
qgame_history);
BEGIN
UPDATE qgame_history
SET result = 1
WHERE history_id = cnumber;
COMMIT;
END;
/
我想使用我项目的这一部分来演示使用隐式游标。
答案 0 :(得分:1)
不需要光标,您可以在单个查询中执行此操作,例如
UPDATE qgame_history
SET result = 1
WHERE history_id = (SELECT MAX(history_id) FROM qgame_history);