在历史表中,我想添加column3的所有值,如果它们具有相同的column2值12345.如果它的总和等于0,那么它们的column1将更改为16977.
使用此代码:
UPDATE history
SET column1 = 16977
WHERE
(SELECT SUM(column3)FROM history WHERE column2 = 12345) = 0
AND column2 = 12345;
我收到以下错误:
错误报告 -
SQL错误:ORA-08002:此会话中尚未定义序列SEQLOG.CURRVAL ORA-06512:at" MCM_2017.GETUSERID",第8行 ORA-06512:at" MCM_2017.GET_MVT",103行 ORA-04088:执行触发器期间出错' MCM_2017.GET_MVT' 08002. 00000 - "序列%s.CURRVAL尚未在此会话中定义" *原因:在序列NEXTVAL之前选择了序列CURRVAL *动作:在选择CURRVAL
之前从序列中选择NEXTVAL
我尝试使用IF语句使用其他代码:
DECLARE
total: NUMBER;
BEGIN
SELECT SUM(column3) INTO total FROM history WHERE column2 = 12345;
IF total = 0 THEN
UPDATE history
SET column1 = 16977
WHERE column2 = 12345;
END IF;
END;
但我最后又出现了另一个错误:
错误报告 - 索引:: 1
时缺少IN或OUT参数请帮我这个,我真的卡住了