Bạn có một số vấn đề, nhưng vấn đề cơ bản nhất là bạn không nên làm điều này chút nào. Cố gắng lưu trữ - và đồng bộ hóa - một giá trị luôn có thể được tính toán là một sai sót cơ bản trong thiết kế.
Bây giờ, với chính mã. Bạn có
SELECT SUM(VALUE) into product
Mục tiêu của INTO của bạn phải là một biến được khai báo. Có vẻ như bạn đang cố CHỌN .. VÀO tên cột.
Bạn nên đặt tên cho các biến cục bộ để phân biệt giữa chúng với tên cột. Do đó, thay vì
DECLARE
value number;
amount number;
total number;
Bạn nên có
DECLARE
v_value number;
v_amount number;
v_total number;
Ngược lại, bạn nên nghĩ về các quy ước đặt tên tiêu chuẩn cho các bảng và cột của mình. Đối với các cột, tôi sử dụng và đề xuất tên ở dạng
Cuối cùng, thật khó để khuyên bạn nên sửa đổi mã hóa nếu không biết các bảng. Bạn đã đưa ra một mô tả mơ hồ về chúng, nhưng tốt hơn là hãy bày mọi thứ lên bàn. Xem ví dụ tối thiểu-có thể tái tạo