Oracle - RETURNING combined with aggregate functions
Oracle supports RETURNING clause which could be very useful. For example for data: CREATE TABLE t(Id INT, Val varchar2(50)); INSERT INTO t(Id, Val) SELECT 10,'a' FROM dual UNION ALL SELECT 20,'b' FROM dual UNION ALL SELECT 30,'a' FROM dual UNION ALL SELECT 40,'b' FROM dual; Query: DECLARE l_cnt INT; BEGIN DELETE FROM t RETURNING COUNT(*) INTO l_cnt; DBMS_OUTPUT.put_line('l_cnt: ' || l_cnt); END; l_cnt: 4 It supports MIN/MAX/AVG/SUM/LISTAGG: DECLARE l_max INT; l_min INT; l_str VARCHAR2(100); BEGIN DELETE FROM t RETURNING MAX(id), MIN(id), LISTAGG(id, ',') WITHIN GROUP(ORDER BY id) INTO l_max, l