Você tem vários problemas, mas o mais fundamental é que você não deveria estar fazendo isso. Tentar armazenar - e manter em sincronia - um valor que sempre pode ser calculado é uma falha fundamental de projeto.
Agora, para o próprio código. Você tem
SELECT SUM(VALUE) into product
O destino do seu INTO deve ser uma variável declarada. Parece que você está tentando SELECT .. INTO em um nome de coluna.
Você deve nomear variáveis locais para distinguir entre elas os nomes das colunas. Assim, em vez de
DECLARE
value number;
amount number;
total number;
Você devia ter
DECLARE
v_value number;
v_amount number;
v_total number;
Por outro lado, você deve pensar nas convenções de nomenclatura padrão para suas tabelas e colunas. Para colunas, uso e recomendo nomes na forma de
Por fim, é difícil recomendar a modificação da codificação sem conhecer as tabelas. Você deu uma descrição vaga deles, mas é melhor colocar tudo na mesa. Consulte minimal-reproducible-example