Tienes varios problemas, pero el más fundamental es que no deberías estar haciendo esto en absoluto. Intentar almacenar, y mantener sincronizado, un valor que siempre se pueda calcular es un defecto de diseño fundamental.
Ahora, al código en sí. Tienes
SELECT SUM(VALUE) into product
El destino de su INTO debe ser una variable declarada. Parece que está tratando de SELECCIONAR .. EN un nombre de columna.
Debe nombrar las variables locales para distinguirlas como nombres de columna. Así, en lugar de
DECLARE
value number;
amount number;
total number;
Deberías tener
DECLARE
v_value number;
v_amount number;
v_total number;
Por el contrario, debe pensar en convenciones de nomenclatura estándar para sus tablas y columnas. Para las columnas, uso y recomiendo nombres en forma de
Por último, es difícil recomendar la modificación de la codificación sin conocer las tablas. Ha dado una vaga descripción de ellos, pero mejor poner todo sobre la mesa. Consulte minimal-reproducible-example