Anda memiliki beberapa masalah, tetapi yang paling mendasar adalah Anda tidak boleh melakukan ini sama sekali. Mencoba menyimpan - dan tetap sinkron - nilai yang selalu dapat dihitung adalah cacat desain yang mendasar.
Sekarang, ke kode itu sendiri. Anda memiliki
SELECT SUM(VALUE) into product
Target INTO Anda harus berupa variabel yang dideklarasikan. Sepertinya Anda mencoba SELECT .. INTO nama kolom.
Anda harus memberi nama variabel lokal untuk membedakannya dengan nama kolom. Jadi, alih-alih
DECLARE
value number;
amount number;
total number;
Anda harus memiliki
DECLARE
v_value number;
v_amount number;
v_total number;
Sebaliknya, Anda harus memikirkan konvensi penamaan standar untuk tabel dan kolom Anda. Untuk kolom saya menggunakan dan merekomendasikan nama dalam bentuk
Terakhir, sulit untuk merekomendasikan modifikasi pengkodean tanpa mengetahui tabelnya. Anda telah memberikan deskripsi yang tidak jelas tentang mereka, tetapi lebih baik meletakkan semuanya di atas meja. Lihat minimal-reproducible-example