Tôi không nghĩ rằng Postgres hỗ trợ cấu trúc cập nhật đó (bài kiểm tra đơn giản mà tôi đã thử không thành công với cùng một lỗi). Bạn có thể phải làm điều gì đó như sau:
CREATE OR REPLACE FUNCTION DATA_UPDATE
(mission NUMERIC,
task NUMERIC)
RETURNS void as '
DECLARE
offScheduled int4;
totalReceivers int4;
BEGIN
IF mission IS NOT NULL THEN
select COALESCE(SUM(RR.TRQ_FUEL_OFFLOAD),0),
COALESCE(SUM(RR.TRQ_NUMBER_RECEIVERS),0) into offScheduled, totalReceivers
FROM REFUELING_REQUEST RR, MISSION_REQUEST_PAIRING MRP
WHERE MO.MSN_INT_ID = MRP.MSN_INT_ID
AND MO.MO_INT_ID = MRP.MO_INT_ID
AND MRP.REQ_INT_ID = RR.REQ_INT_ID;
UPDATE MISSION_OBJECTIVE MO
SET MO.MO_TKR_TOTAL_OFF_SCHEDULED = offScheduled,
MO.MO_TKR_TOTAL_RECEIVERS = totalReceivers
WHERE MO.MSN_INT_ID = mission
AND MO.MO_INT_ID = task ;
END IF;
END;
' LANGUAGE plpgsql;
... giả sử tôi không hiểu logic quá tệ;)
Tôi đã tự ý thay đổi cách xác định các tham số và kiểu trả về (vì có vẻ như bạn không thực sự trả về bất kỳ thứ gì từ hàm?)
Chỉnh sửa:rất tiếc, tôi đã sử dụng sai cấu trúc cho select into
...