我试图每周在Oracle中完成一份工作(ORACLE SHEDULER)。
重点是每周循环遍历“ Historico”表,并检查与该链接相关的每个“ ID_Academista” “ Academista”表。之后,应该比较“ Valor_Atual”以查看其> 20(来自表“ Tecnologia”)
如果是,则减1,否则不减。
用更好的英语来说:每个“ Tecnologia”都是一项技术,每种技术都有各自的等级(Valor_Atual) 那将在“ Academista”(学生)内部
这是代码:
KeyError(key)
答案 0 :(得分:0)
在没有变量的pl / sql块中不能使用selects。
CREATE OR REPLACE PROCEDURE notas
IS
contar INTEGER := 0;
contar2 INTEGER;
h_var HISTORICO%rowtype;
BEGIN
SELECT COUNT(*) INTO contar2 FROM Academista;
WHILE contar <= contar2
LOOP
SELECT h.* into h_var FROM HISTORICO h
WHERE h.Id_academista = contar ;
IF
h_var.Valor_Atual > 20
THEN
UPDATE HISTORICO
SET Valor_Atual = Valor_Atual + 1
WHERE h_var.Id_academista = contar;
ELSE
UPDATE HISTORICO
SET Valor_Atual = Valor_Atual - 1
WHERE h_var.Id_academista = contar ;
SET contar := contar + 1;
END IF;
END LOOP;
END;